Bash on Ubuntu on WindowsでJupyter NotebookからTensorflowを実行する

  • 12
    Like
  • 0
    Comment

Jupyter Notebookでいじって学ぶTensorFlow - MNIST For ML Beginnersをよんで、windowsでもJupyter NotebookをつかってTensotflowを実行できる環境が欲しくなったので、構築してみました。

pyenvのインストール

Bash on Ubuntu on Windowsにはデフォルトでもpythonが入っていますが、Anacondaを
使いたかったので、pyenvをインストールしました。

$ sudo aptitude install git
$ git clone https://github.com/yyuu/pyenv ~/.pyenv
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(pyenv init -)"' >> ~/.bashrc
$ source ~/.bashrc

Anacondaのインストール

pyenvのインストールが終わったら、

$ pyenv install --list

してAnacondaの最新のバージョンを探します。この記事を書いた時点では3-4.2.0が最新だった
ので、3-4.2.0をインストールしてデフォルトの設定にしました。

$ pyenv install anaconda3-4.2.0
$ pyenv global anaconda3-4.2.0
$ pyenv rehash

X11 GUI環境の整備

参考記事[2]を参考にしてX11 GUI アプリケーションを使える環境を整えます。

windowsには以下のアプリケーションをダウンロードしてインストールします。
* Xming-6-9-0-31-setup.exe
* Xming-fonts-7-7-0-10-setup.exe

そのあとにBash on Ubuntu on Windowsで以下のコマンドでX11を入れて、DISPLAYの設定も.bashrcに書きます。

$ sudo aptitude install x11-apps
$ echo 'export DISPLAY=localhost:0.0' >> ~/.bashrc
$ source ~/.bashrc

最後にxclockを表示させて動作を確認します。

$ xclock

matplotlibのインストール

jupyterでグラフを表示させるためにはmatplotlibが必要なので、その準備をします。

sudo aptitude install libqtgui4
conda install matplotlib

また次のコードで使うnumpyがmkl対応になっていて、エラーになるので、
nomklのものに入れ替えます。

conda install nomkl
conda update --all

この状態で以下のコードを実行すると、sinカーブの画像が作られることを確認します。

sin_plot.py
import matplotlib
matplotlib.use('Agg')

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y  = np.sin(x)
plt.plot(x, y)
plt.savefig('sin_curve.png')

jupyterのインストール

Bash on Ubuntu on Windowsではlibzmq3周りでエラーになるので、それに対応したlibzmq3をインストールします。

$ sudo add-apt-repository ppa:aseering/wsl
$ sudo aptitude update
$ sudo aptitude install libzmq3
$ conda install -c jzuhone zeromq=4.1.dev0
$ conda install jupyter

最後に以下のコマンドを実行すれば、Jupyterが立ち上がり、http://localhost:8888/
で接続してpythonを実行できるようになります。

jupyter notebook --no-browser

先ほどのmatplotlibのグラフをjupyterのnotebookでインラインで表示させたい
場合は以下のように書くことでjupyterのnotebookに表示できます。

%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y  = np.sin(x)
plt.plot(x, y)

sin_curve.PNG

Tensorflowのインストール

参考記事[1]を参考にしてanaconda
の環境にTensorflowをいれます。

conda install -c conda-forge tensorflow

最後にJupyterのNotebook上で、https://www.tensorflow.org/get_started/
にあるコードを張り付けて実行すると結果が返ってくるので、
Tensorflowがインストールできていることが確認できます。

tensor_flow_tutorial.PNG

参考記事

以下の記事を参考にさせて頂きました。ありがとうございます。
1.Bash on Ubuntu on WindowsでTensorFlowを使うためのメモ
2.Bash on Ubuntu on Windows + XmingによるGUI
3.Cygwin絶対殺すマン ~物理のオタクがWindows Subsystem for Linuxで数値計算できるようになるまで~
4.Jupyter Notebookでいじって学ぶTensorFlow - MNIST For ML Beginners