Google ColaboratoryでBinary CNNを動かす(MNIST)

CNN学習させていて、やっぱりGPU環境が欲しかったので、

クラウドとかいろいろ調べているうちに無料でGPU使えるGoogle Colaboratoryに行き当たった。
BinaryNetとか動かしてみたくてやってみたけども、素晴らしい。
12時間以内に学習終わるようなものであればこれだけで全然良い。
というわけでChainerでBinaryNet(CNNだけど)を動かしてみたのでやり方とサンプルをメモする。

Google ColaboratoryのGPU+Chainer環境立ち上げ

Google ColaboratoryでのGPU環境の立ち上げは省略するけども以下が参考になる。
Chainerはすでにコマンド一つで環境立ち上げできるものを公開している方がいて、
それをありがたく使わせていただいた。
以下Git上に記載のあるコマンドをまず実行するだけでchainer環境が整う
一応コマンド載せておきます。※!を最初につけるとLinuxコマンドが打てるようになっている。
!curl https://colab.chainer.org/install | sh -

BCNN+MNIST学習コード

これは完全に以下のものを拝借しました。ありがとうございます。
※ちなみにGUINNESSであればGUI環境でBinary CNNはできるので、私のやっていることはあまり意味がないと思われるが、仕組みを理解するためにやっているので良しとする。
ただ、chainer v1で構築されていたものだったので、最新版だとそのまま動かせない。
なので、動かせるように変更したものを以下にアップした。※Gitの使い方はそのうち覚えたい。

実行方法

1.utilsフォルダを作成(一応のせるが、以下のコマンドで作成される)

!mkdir utils

2.Coraboratory画面左側のファイル窓にutilsがあるので、上記ファイル群をそこにアップロードする。メインコードの、bcnn_mnist_chainer.pyはカレントディレクトリに置く。以下の状態にする。
  ※resultフォルダとbcnn.modelは実行後に出力されるので注意

3.以下コマンドを実行

!python bcnn_mnist_chainer.py –gpu 0

これでMNISTの学習をBCNNでできるようになった。GPUを使えば恐らく数分で5 epochは終わると思う。素晴らしい。

コメント

タイトルとURLをコピーしました