Bash on Ubuntu on WindowsでTensorFlowを使うためのメモ

  • 66
    いいね
  • 0
    コメント

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上からも認識されます。