Deep Learning

TensorFlowを自分のPCにインストールする

前回のエントリでTensorFlowを使った実験をしてみようと考えていると言いました。今回実際にインストールしたので僕の場合の導入手順を書いておこうと思います。

TensorFlowとは

Deep Learningを利用するためのライブラリです。対応言語はPython(C++も?)で、開発元はGoogleです。Deep Learningのライブラリは他にも複数あり、TensorFlow以前はTheano, Chainerなどがあったようですが、Googleのネームバリューに勝ってそれらが今後選ばれ続けるか怪しいと思っています。ライブラリは利用者が多いほうが文献が充実して更に利用者が増えるものなので…ということでDeep Learningのユーザーとして選ぶライブラリはTensorFlowが現段階ではベストなのではないかと考えています。

動作環境

TensorFlowは現状Unix互換OSでしか動きません。したがってLinux系かMac OSになると思います。実は10日もかけて依存関係バイナリからCygwinコンパイルを試みていたのですが、Bazelというバイナリがコンパイルはうまく行けどパス処理がうまく行かずちゃんと動かないという結果に終わり、Windowsでのネイティブコード動作は挫折しました。

Ubuntuをデュアルブートする

Windowsでは使えないとなると方法は限られていて、

  1. VirtualBoxなどの仮想化ソフトウェアを使ってUnix互換OSを入れる
  2. 別のパーティションにUnix互換OSを入れる

くらいが思いつきます。今回2の方法をとることにしました。1で仮想化を行って動かす方法では速度面で2の方法以下になるはずで、等号が成立するかどうかわからなかったためです。1に関しては

TensorFlowをMac & Dockerで使ってみたよ – Qiita

などが参考になるかと思います。

デュアルブートの際には

UbuntuをUSBメモリからインストール | Linuxサーバより愛を込めて。

を参考にしました。引っかかった点としてはUSBをFATでフォーマットしておかないとunebootinがPC起動時に読み込まれずインストールが始まらなかったことくらいです。あとはダイアログにしたがって行けば簡単にインストールできます。Ubuntu用のパーティション分けは100GB程度にしました。大きなデータを扱うことになるとしても外部HDDなどから読むことになると考えたからです。

Anacondaを入れる

AnacondaはPythonインタプリタから機械学習パッケージまでall-in-oneな開発環境です。いろいろ個別に入れるのは面倒なので入れておくことをおすすめします。

Bazelをインストールする

TensorFlowはPipからでもインストール可能ですが、最新版ではない可能性があると思ったこと、最新版にすぐに追随できるようにしたかったこと、という点からソースからビルドすることにしました。そのためにまずTensorFlowをビルドするために必要なBazelをインストールします。Bazelはなんなのかよくわかっていないのですが、おそらく「Google製のすごいmake」みたいなものだと思っています。

Installing Bazel – Bazel

こちらの指示にしたがってインストールを行います。依存対象がJDKのみなので難しくないかと思います。

TensorFlowをビルドしインストールする

ここまできてようやくTensorFlowをビルドする準備が出来上がります。こちらのページのInstalling from sourcesの指示にしたがって依存関係を構築し、ビルドを行ってください。僕のノートPCはNVIDIA製GPUは載っていないのでCUDA関連はインストールしませんでした。また、解説ページが若干わかりにくくなっていますが、Installation for Linuxが一通り続いたあとInstallation for Mac OS Xを飛ばし、Create the pip package and installを実行してください。

雑感など

Windowsであれだけ苦労してしかも挫折したビルドからのインストールが非常に簡単に行えました。似たような境遇の方は(いないと思いますが)早くデュアルブートして楽になることをおすすめします。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中