EnsekiTT Blog

EnsekiTTが書くブログです。

「おっ、それDeepLearningでやればいいじゃん!」と言いつつ設備の稟議が通らない会社に現実をつきつける話。

つまりなにしたの?

ぶかぴっぴ「ネットの記事で見たんですけど、こんなCPUだけのじゃDeepLearningなんてむりっすよ〜」
じょうぴっぴ「それは大変だ!承認印どーん!」
ってなるためのネットの記事を作ろうと思った。
f:id:ensekitt:20170924143310j:plain

というのも、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

パッケージ

GPUを使う場合
pip install tensorflow-gpu
CPUしかないPCの場合
pip install tensorflow

動作確認

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

データセットをダウンロードする

python cifar10_download_and_extract.py

5分位で終わる。
データセットは/tmp以下におかれる

トレーニングを開始する

※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秒

時流には乗ってないけど月曜日には間に合いました

これでつよいPCの稟議が通りますね(通るとは言っていない

中二病ライティングされているPCのなのでちょっと寝不足。
このあと秋葉原に行って別の部品かってくる。

クリエイティブ・コモンズ・ライセンス
この 作品 は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。