tensorflowのインストール方法とか

 

やあ、包丁舐め男だよ
ブログを更新しようと思ったけど特に書くこともないから、今回は卒研で使ったTensorflowのインストール方法を説明するよ。
卒論の付録で書いたことから抜粋していくので、古い情報の可能性があるので注意してくれよな!

 英語が読めるんなら、公式HPを読んだほうがわかりやすいよ。

Installing TensorFlow on Ubuntu  |  TensorFlow


まず、環境の説明からします。

※興味のない人は読み飛ばしてくれよな!
------------------------------- コ コ カ ラ -------------------------------


研究室で僕に割り当てられた環境は2016年度時点で、
Intel Xeon 64コア(のうち、仮想割当20コア)(何GHzだかは忘れた)
・メモリ 256GB(だった気がする)(うち割当30GB(確か))
GPU なし
・OS Ubuntu14.04(仮想環境下)

基本的にCentOSのコンソール上でUbuntu側にSSH接続し操作するというめちゃくちゃ面倒な環境でした。
最初はCentOS上でpythonを入れて…とやりたかったのですが、OSに乗っかってるpythonが古く、かつ、OSがpythonに依存性があるところがあり、無闇にアップデートはできない状況でした。virtualenvでのインストールも試みましたが、今度はGCCのバージョンが古いよ!という致命的なエラー…コンパイラコンパイルに必要なコンパイラのバージョンが古いみたいなのが芋づる式になってしまい、裏ボスに相談してUbuntuサーバを立ち上げてもらいました。

今はどうなってるのか定かではないですが、裏ボスがGeForce 1080あたりを買っていたのでバレないようにサーバーに入れてるか、自分のPCに入れているかしてると思います。

------------------------------- コ コ マ デ -------------------------------

 

 

 

では早速、pythonのインストールから始めましょう。大体の人はアップデートとかの心配はいらないと思いますが、念のため。

まず、自分が使いたい深層学習のライブラリ(Tensorflow、Caffe、etc...)で、必要なpythonのバージョンを確認します。コンソール上で

python version

と打てばpythonのバージョンが出てきます。
tensorflowの場合、2.7系か3.3以上なら大丈夫。
もしバージョンが足りない場合は、apt-getやyumなど、各ディストリビューションに沿ってpythonをアップデートしてください。
入ってたpythonが古すぎる場合は、最悪OSが死ぬのでvirtualenvとかanacondaとか使って仮想環境でインストールするようにしましょう。
…さすがにapt-getとかのやり方はわかるよね?
 
次は、これもインストールされていると思うけど、pipというツールをインストールします。

これは、python版のaptみたいなもんでpythonに入ってるパッケージ(ソフトウェア的な)を管理しているものです。
なかったら apt-getでpython-pipをインストール。ついでにpython-devもインストール。

pip inbstall

 

ちなみにpython3.x系だと、pipを呼び出すのにpip3というコマンドになるので注意が必要だ。

 

また、GPUを使って拘束に回したい!って人は最近話題の謎のメーカー()、NvidiaGPUを使う手がある。これもソフトウェアのインストールが必要だ。
具体的には、CUDA ToolkitとcuDNNのインストールをしなくてはいけない。
詳しくは下のリンクを参照してください。(英語注意)

developer.nvidia.com

 

 

ここまで準備ができたらあとは簡単。

gista904161057f0d2152840152a5d5b8a57

これで終わり。

あとはハローワールドでも動かしましょう。

 

gistba5d04262b13701fc8448a9595a7b657

 

なにをやってるかというと、

1.tensorflowのパッケージをtfという名前で定義してやる
2.tf.constantでtendorflowの中のconstant(定数を指定するやつ)を呼び出して、Hello, World!を変数helloに代入する。
3.tf.Session()でセッションを作る(tf.Session() as sessという呼び出し方も可)
4.print句内でセッションに変数helloを渡して走らせる

みたいな流れになってます。ちょっとややこしい。

 

わかりずれぇぞカスみたいな感じになってしまったけど、英語が読めるなら、普通にTensorflowのHP読んでもらえば同じこと書いてあります。

 

疲れてしまったので、今度は研究でやってたことを思い出しつつCNNに触れられたらいいなと思います。