AWSのGPUインスタンスにTensorFlowを入れる簡単な方法

機械学習など大規模演算を行う場合,手元に環境が整っていないならクラウドサーバを使うのがベストです.計算速度が桁違いですから.

いくつか選択肢はありますが,現在 GPU インスタンスが使えるのは個人で運用できるものの中で Amazon Web Service や Mircosoft Azure が有名どころです.

今回は AWS 編です.

Amazon Web Service

AWS には何十とサービスがありますが,コンピューティングでは EC2 (Elastic Compute Cloud) を使います.

ずっと一年間無料枠キャンペーンをやっています.無料枠では t2.micro インスタンスしか利用できず,vCPU 1 コア,メモリ 1 GiB なので残念ながら機械学習には全く向いていない,というかたぶん動かないと思います.(メモリ不足)

有料枠の GPU インスタンスを利用すればいいのですが,利用料金を考えると頭が痛い...

Deep Learning AMI

AMI とは Amazon Machine Images の略だそうですが,要は使うものをすべて入れておいたものってことです.VPS や レンタルサーバによくあるパターンですね.

その中に Deep Learning AMI Amazon Linux Version とかいうのがあって,インスタンス作成時にこれを選択していると,TensorFlow が元から入ってて楽だねっていう話です.

注意点としては基本的に GPU 対応を考えたものなので,インスタンスも GPU を選ばなければならないことです.CPU でもできなくはなさそうですが,たぶん毎回警告メッセージが出ます.

バージョン 1.5 から CPU インスタンスをサポートしているようです.

フレームワーク

  • MXNet
  • Caffe
  • TensorFlow r0.10
  • Theano
  • Torch
  • CNTK

上記 6 種類のフレームワークがプリインストール.あれ,Chainer...

その他インストールされているもの

  • CUDA
  • cuDNN
  • Anaconda
  • Python2 and Python3

元々 GPU 利用を前提にしているため,そこら辺のコンポーネントも最初から用意されています.事前準備が要らないのが嬉しい!

最後に

Google Cloud Platform にもとうとう GPU インスタンスが来るということで,どっちが使いやすいか,料金が手頃か,という勝負になってきそうですね.

GCP には AMI をマーケットプレイスから拾ってくるといった仕組みが今のところ見当たらないので,そこは Amazon が一歩リード?