つまりなにしたの?
ぶかぴっぴ「ネットの記事で見たんですけど、こんなCPUだけのじゃDeepLearningなんてむりっすよ〜」
じょうぴっぴ「それは大変だ!承認印どーん!」
ってなるためのネットの記事を作ろうと思った。
というのも、MNIST程度だとCPUでもまあまあ動いちゃうんですよね。
これを見たじょうぴっぴに、「十分できるだろう!現場の工夫がたりない!!」などと
言われるのも癪なので、もっと時間のかかるやつで説得材料を用意したわけです。
環境:
- Memory 15.6GiB
にわかゲーマーの僕にはちょうどいいPCですよね。
人権には諸説ありますが、開発者向けPCなら購入時期によってはこれくらい
用意してくれる会社が多いんじゃないですかね?
対象
まあディープラーニングといえば画像認識だろうな(安易)ってことで、
Inception-v3(GoogLeNet) + ImageNet
と言いたいところですが、GPUでもまるで終わらなくなるので(ひよって
ResNet + CIFAR-10
https://arxiv.org/pdf/1512.03385v1.pdf
にしました。
github.com
ちなみに、1行もコードは書きません。ただ実行するだけ。
みんなも会社や学校のパソコンで試してみてね!
準備
仮想マシンを載せてしまうとオーバーヘッドがありそうだし、
普段使いのPythonに環境入れるほど頻繁に利用するわけではないので、
pyenv virtualenv 上に環境を用意する。(任意)
よさ気な記事があったので
qiita.com
で選ぶといいかも。
僕は複数バージョンでのテストはあまりしないでいい環境が多いのですが、
ただ試してみた系のワークフローを固定しているのでPyenv使います。
Pyenvの準備
pyenv update pyenv install 3.6.2 pyenv virtualenv 3.6.2 tf_test
ワークスペース
mkdir ~/tf_test cd ~/tf_test pyenv local tf_test
動作確認
python
import tensorflow as tf sess = tf.Session()
こんな感じで動きますね
2017-09-23 20:36:13.787011: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1045] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 1070, pci bus id: 0000:01:00.0)
コードのダウンロード
git clone https://github.com/tensorflow/models.git cd models/official/resnet
トレーニングを開始する
※Xを止めたり他の使ってないサービスを止めたりはできる範囲でやればいいと思います。
(なにせ時間がかかることの証明だから!
time python cifar10_main.py
待つ
- GPUを使った場合
Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz (Amazon)と
1時間13分50秒
この時点ではやくはない。
- CPUだけでやった場合
Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz (Amazon)のみNVIDIA® GeForce GTX 1070/PCIe/SSE2 (Amazon)
計算中(すでに1時間経過している)→今日終わる気がしないので後日あげる。
33時間20分45秒