機械学習の構成についての覚書です
各環境のメリット・デメリットなど
環境はローカルか、クラウドか
ローカル
初期投資が大きく、ランニングコストが安い
必須なのはグラボと環境構築を諦めない根性
その分制約がほぼ無いので、可能ならローカルで環境構築仕切ってしまいたい
anacondaを使う方法がかなりオススメ
必須
必須なのはグラボ。
とりあえず動かしたいならGTX750辺りが安くて良い
性能はクラウドと大して変わらない
できればGTX1060ぐらいは欲しいけど、ジャンクに手を出すのはやめた方が良い(一敗)
中古で店舗から買うのが無難
あれば良いもの
SSD。無いということは無いと思う。1TBぐらいのを買ってしまえば容量を気にしなくて済む
割となんでもいい
CPU core第二世代以降
メモリ 8GBぐらい
OS 出来れば最新
python 3.x。2.7はもうおしまい
やること
nVidiaに登録してCUDA、cudnnを入手
sckitlearn全盛期は依存地獄だったが、最近はtensolflowとkerasを入れると大体動くのでそこまで大変でも無い
クラウド
googleのColaboratoryなら無料
https://colab.research.google.com/
最初からほぼ全部揃っている。CUDAも入っていて何の知識も依存地獄もない
amazonのAWSでも良いが有料。時間課金制
TPU
TPUが使えてアホみたいに早い
しかしGPUのソースコードにはかなり手を加える必要がある
tensorflowのバージョンが上がればその辺り自動的に対応してくれるんじゃないかな、もう少し待とう
TPUは現状、CPU扱いになる
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())
[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 14364440645520663771
, name: "/device:XLA_CPU:0"
device_type: "XLA_CPU"
memory_limit: 17179869184
locality {
}
incarnation: 5324631014525462955
physical_device_desc: "device: XLA_CPU device"
]
Colaboratoryについて
12時間ごとにリセットがかかるのが最大のネック
回避するためには、学習結果を12時間以内の範囲でgoogleドライブに逃がすなどの対処が必要
GPUはTESLAのK80
K80は2012年リリースのハイエンドGPU
しかし、7年も経つので、そろそろ厳しい
また、K80は内部で2つのチップを持っているがその内の一つしか使えない
性能的にはざっくりとGTX960~GTX970辺り
まとめ
どれも一長一短
なんとなく試したいだけならColaboratoryが良い
ガッツリやりたい場合は自前での環境構築をオススメ