Windows 10 Anniversary Updateで、WindowsでUbuntuが使えるようになったということで、TensorFlowを入れてみました。
参考記事
以下の記事を参考にさせていただきました。
[1] Bash on Ubuntu on Windowsをインストールしてみよう!
[2] CentOSにpyenvを利用してAnacondaをインストール
[3] TensorFlow Installation Using conda
[4] Bash on Ubuntu on Windows + XmingによるGUI
[5] Cygwin絶対殺すマン ~物理のオタクがWindows Subsystem for Linuxで数値計算できるようになるまで~
[6] Bash on Ubuntu on Windows とX Windowの組み合わせで日本語表示と日本語入力
Bashインストール
参考記事[1]の通りです。
Anacondaインストール
Ubuntu on Windowsにはpythonは入っているのですが、バージョンが2系で、パッケージの追加も必要ということなので、Anacondaを入れることにしました。ただし、元のpythonは残しておくため、参考記事[2]のようにpyenvを使ってインストールしてみました。以下、その手順です。
Gitインストール
pyenvインストールのためにGitをインストールします。
$ sudo apt-get install git
pyenvインストール
Gitを使ってpyenvをインストールします。
$ git clone https://github.com/yyuu/pyenv ~/.pyenv
pyenvの設定
pyenvの環境設定を.bachrcに追加します。
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(pyenv init -)"' >> ~/.bashrc
Anacondaインストール
source ~/.bashrcか、bash再起動して
$ pyenv install --list
でインストールできるAnacondaのバージョンを確認して
$ pyenv install anaconda3-4.1.0
でインストールします。
Pythonの環境設定
$ pyenv global anaconda3-4.1.0
$ pyenv rehash
で、Pythonの環境をAnacondaに設定します。
TensorFlowインストール
TensorFlowのインストール方法はいくつかありますが、Anacondaが入っているので、
$ conda install -c conda-forge tensorflow
でインストールします。ただし、これでインストールできるのは、CPU版のみです。
ここで、TensorFlowのIntroductionにあるサンプルプログラムをPythonで実行すると、
0 [ 0.82097143] [-0.14609614]
20 [ 0.30302274] [ 0.18841095]
40 [ 0.15555] [ 0.26946762]
60 [ 0.1151993] [ 0.29164591]
80 [ 0.10415875] [ 0.2977142]
100 [ 0.1011379] [ 0.29937458]
120 [ 0.10031134] [ 0.29982889]
140 [ 0.10008518] [ 0.29995319]
160 [ 0.10002329] [ 0.2999872]
180 [ 0.10000639] [ 0.2999965]
200 [ 0.10000175] [ 0.29999906]
と出るので、とりあえずTensorFlowインストールはOKなのでしょう。
X11関連のインストール
BashだけだとGUIがないので、ついでにX11アプリが使えるようにします。手っ取り早いのは、参考記事[4]のように、Xmingを使う方法です。
(Xmingと同様なソフトとしてVcXsrv Windows X Serverというのもあります。)
Xming、あるいはVcXsrvをインストール後、X11のアプリとライブラリをインストールします。
(インストールするのは、x11-appsでなくても構いません。xtermなどX11のアプリであれば、必要なライブラリがインストールされます。)
$ sudo apt-get install x11-apps
それから環境設定を.bashrcに追加します。
$ echo 'export DISPLAY=localhost:0.0' >> ~/.bashrc
これで、X11関連のアプリは動くはずですが、Pythonでmatplotlibを使ってグラフを表示させようとすると、
OMP: Error #100: Fatal system error detected.
OMP: System error #22: Invalid argument
というエラーが出て止まってしまいます。matplotlibに限った話ではないのでしょうが、MKLを利用するパッケージでエラーが出るそうで、
$ conda install nomkl
のように、各パッケージをMKL非対応版に変更する必要があるようです。
一応、これで自分の環境では、matplotlibでグラフを表示させることもできました。~~ただこのままでは、グラフ中の日本語表示はうまくできないようです。~~日本語入力は参考記事[6]を参考にするとできます。それからmatplotlibグラフ中の日本語は、
from matplotlib.font_manager import FontProperties
fp = FontProperties(fname='C:\Windows\Fonts\YuGothM.ttc', size=14)
のフォントのパスを
from matplotlib.font_manager import FontProperties
fp = FontProperties(fname='/mnt/c/Windows/Fonts/YuGothM.ttc', size=14)
のように書けば、Bash上からも認識されます。