2016年2月21日日曜日

AWSを使ってみる:Deep-learningのために

このところ、Deep-learningの勉強をしているんですが、サンプルでとにかく処理時間のかかるものがあります。
chainerやTensorFlowは64bit環境が前提(chainerはそうでもないんですが、そっちのほうが望ましい)なので、自宅のLinuxは32bitでアウト。そうなるとMac OSXになるのですが、ノートPCなので電源つなげっぱなしはバッテリーへのタメージから考えると避けたい。
自宅のLinuxを64bitにしてもいいんですが(古いPCですが、Core2なんで一応64bit OSはインストールできます)、せっかくなのでAWSを試してみます。

お試しなので、作れるインスタスは小さな"t2.micro"になります。(64bit redhatですが、メモリが1GBしかありません)それでも、まあchainerは動くだろうと、インストールを始めますが色々問題が出ました。

1.rootのパスワードは何?
まず、pipをインストールしようとしたらエラーがでました。まあ、この手のものはroot権限が必要ですから、sudoコマンドを使おうとすると、passwdを聞かれました。でも、AWSでEC2にインスタンスを作ったばかり、passwdは何?最初、AWSのアカウントのパスワードかと思いましたが、初期状態ではpasswdが設定されていないので、

$ su -
$ passwd

で、rootのパスワードを設定してやるものなんだそうです。

2.chainerのインストールができない(gccが必要)
さて、pipのインストールができたので、それでchainerをインストールしようとすると、エラーがでます。はじめは何が問題なのかわからなく、色々ぐぐってみました。でもどれも見当はずれ。よくよくエラーメッセージをみると、gccコンパイラがないと・・・
そうです、AWS EC2のインスタンスでは最低限のものしか入っていなくて(でもpythonは入っていた)、gccがなかったのです。

$ sudo yum install gcc
$ sudo yum isntall gcc-c++  ←これわかり難い
$ sudo yum install gcc-gfortran ←これも通常の名前と違うみたい
$ sudo yum install python-devel  ←これが一番悩んだ。pipで、Python.hがないと怒られた。

と、いろんな開発用パッケージをインストールしないといけません。AWS内ではyumリポジトリがAmazon専用のものが設けてあるのは知っていましたが、なんかパッケージ名が違うのか?ググったものと”微妙”にパッケージ名が違い困りました。(何かパッケージ名が微妙に違う気がしますが、これは自分が数年間RedHatから遠ざかり、Ubuntuを使い続けたからかもしれません)

3.virtualenv環境でchainerが動かない
これはまだ原因がわかりません。上記、各種パッケージのインストールをしたあと、virtualenv環境下でchainerをインストールしたのですが、なぜかnumpy等のパッケージが見つからないと怒られます。しかたなく、virtualenvの使用をあきらめるとうまくいくので、色々試行錯誤してるうちにどこかで間違ったかもしれません。

と、かなりとまどいました。とりあえず、今回はここで力つきました。AWSでDeep-learningを試してみるのは次にします。

0 件のコメント:

コメントを投稿