[TensorFlow][Docker] TensorFlowをWindowsで動かす

ヨメレバCSS
オリジナルCSS

 Googleのリリースした機械学習フレームワークTensorFlow。

TensorFlow自体は、LinuxとMac OSXにしか対応していないのですが、これをWindowsで動かしてみる環境を作ってみます。

 そうDockerです。

スポンサーリンク
GoogleAdSence レクタングル(大)

Docker Toolboxのインストール

 TensorFlowのドキュメントには、Dockerのイメージを公開しているとあります。

 これがWindowsでも使える。ので、まずはDockerをインストールします。

Get started with Docker for Windows. This guide covers system requirements, where to download, and instructions on how to install and update.

 Dockerのインストールには通常のものとToolboxというセットの二種類あるみたいですが、Docker Toolboxが簡単そうなのでそちらを使う。

Docker Desktop is available to download for free on Mac, Windows, or Linux operating systems. Get started with Docker today!

 こちらからインストーラーをダウンロードしてきて実行。

SnapCrab_Setup - Docker Toolbox_2016-8-11_9-17-39_No-00

SnapCrab_Setup - Docker Toolbox_2016-8-11_9-18-12_No-00

SnapCrab_Setup - Docker Toolbox_2016-8-11_9-18-1_No-00

SnapCrab_Setup - Docker Toolbox_2016-8-11_9-18-28_No-00

  特に注意するところもなく、Nextで進めていきます。

 インストール後、「Docker Quickstart Terminal」からDockerのターミナルを起動します。

SnapCrab_NoName_2016-8-11_9-29-8_No-00

こういうターミナルが上がってこればOKです。

 インストール後の確認として、

$ docker run hello-world

を実行して、

Hello from Docker!
This message shows that your installation appears to be working correcly.

To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker datemon pulled the "hello-world" image from the Docker Hub.
3. The Docker daemon createed a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker Hub account:
https://hub.docker.com

For mor examples and ideas, visit:
https://docs.docker.com/engine/userguide/

というメッセージが出ればOKです。

TensorFlowイメージからコンテナを作る

 そして公開されているTensorFlowイメージからコンテナを作ります。まずは公式のコマンドそのままで。

$ docker run -it -p 8888:8888 gcr.io/tensorflow/tensorflow

 起動してみたのですが、サービスは起動しているみたいだけどコンソールが出てこない…(このへんDocker不慣れなのでわからないだけかも

 それで今度はlatest-develで起動してみます。

$ docker run -it b.gcr.io/tensorflow/tensorflow:latest-devel

こっちではコンソールが起動してきました。

 pythonでtensorflowの確認をしてみます。

$ python
...
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print(sess.run(hello))
Hello, TensorFlow!
>>> a = tf.constant(10)
>>> b = tf.constant(32)
>>> print(sess.run(a + b))
42
>>>

pythonは「>>>」にある行を一行ずつ入力していって、「Hello, TensorFlow!」「42」という結果が返ってきたらOKです。

二回目以降のコンテナの起動について

 実は、docker runコマンドを使用すると、毎回新しいコンテナを作ってしまいます。つまり毎回初期化された状態になる。

$ docker ps -a

とすると、今作成されているコンテナの一覧を見ることが出来ます。

 その中から起動するときは、CONTAINER IDを指定します。

$ docker start -ai <CONTAINER ID>

 イメージを作るときに名前を付けておくと、それで起動できるので便利です。

$ docker run --name tensorflow -it b.gcr.io/tensorflow/tensorflow:latest-devel

などとしておけば、

$ docker start -ai tensorflow

で起動できます。

ホスト(Windows)とコンテナでファイルを共有する

 Windows側のファイルをそのまま使用したいときは、runのときに-vオプションを使います。

$ docker run -v /c/Users/(共有したいフォルダのパス):(TensorFlowのDockerでアクセスするときのパス) -it b.gcr.io/tensorflow/tensorflow:latest-devel

 共有するWindows側のフォルダは、C:\Users以下でないといけないみたいです。また起動はDockerのMINGWからなので、パスはMINGW内のパスに、大文字と小文字が区別されたものになります。

 例えば、「C:\Users\tmp」を「/root/share」に共有するときは以下のようにします。

$ docker run -v /c/Users/tmp:/root/share -it b.gcr.io/tensorflow/tensorflow:latest-devel

 Dockerの使い方自体がちょっと覚束ないので、コマンドや引数などはまた追々…

参考リンク

An end-to-end open source machine learning platform for everyone. Discover TensorFlow's flexible ecosystem of tools, libraries and community resources.
やりたいこと 最近話題のGoogleの人工知能エンジン TensorFlow。残念ながら、LinuxとMac OS Xしかサポートしていません。 ところが、Windows上でTensorFlowを使用する環境を作る方法がありまし...
index.docker.ioから指定したイメージを取り込む docker pull REPOSITORY docker image pull REPOSITORY イメージ一覧を得る docker i...
スポンサーリンク
GoogleAdSence レクタングル(大)

シェアする

スポンサーリンク
GoogleAdSence レクタングル(大)

コメント

  1. […] TensorFlowをWindowsで動かす2016/8/11http://scriptlife.hacca.jp/contents/programming/2016/08/11/post-1698/ […]