itorch とは
DeepLearning のプラットフォームとして注目されている Torch.
Lua をベースにしており Linux の環境で動作する。コマンドプロンプトで実行する方法は、デバックや結果を確認する点でなにかと面倒。
そこで、注目されているipython notebook を使って、Web Browser をプログラム環境として利用します。 最新のipython notebook は言語拡張性をもっており言語のカーネルを設定することでpython 以外の言語での利用が可能です。また、図などをブラウザに表示できるのでグラフィカルなデバックも可能。ipython の torch 拡張である itorch をdocker で動作させる方法について紹介します。
docker
dockerはLinux OSが起動して必要がありますが、最近では Mac, Windows でも
VM 経由で動作させることも可能。
ここでは、設定済みのイメージをdocker hub から pull します。
docker pull kkoba84/itorch-docker
確認方法としては
docker images
ipython の itorch向け設定
ipython のプロファイル設定は、~/.ipython
フォルダに設定ファイルがあります。
今回のdocker のイメージの設定では、以下のように設定してあります。
(ここでは、pull したイメージを利用するので設定する必要はない.Dockerfileの説明)
まずは、profile の作成
ipython profile create itorch_svr
次に、itorch のカーネルとして起動する設定
c = get_config()
c.KernelManager.kernel_cmd = ["/root/torch/install/bin/itorch_launcher","{connection_file}"]
c.Session.key = b''
c.Session.keyfile = b''
docker のポートをフォワードする設定として、接続に関する設定をします。
ここでは、どのアクセスからも許可してしまうので、気になる場合には
パスワードの設定が必要になります。
c = get_config()
c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False
c.NotebookApp.port = 9999
/root/torch/extra/iTorch
docker の動作確認
デーモンで動かす前に、確認する方法。まずは、docker を起動。ポートをフォワードする設定として -p 9999:9999
を指定して起動します。
docker run -p 9999:9999 -it kkoba84/itorch-docker
/bin/bash が起動してプロンプトがでます。次に、itorch を実行
itorch notebook --profile=itorch_svr
これで、port 9999 の notebook server が起動します。
ホストのPCで、chrome/firefoxブラウザを起動(IEは表示が崩れる)して以下のURLにアクセス
http://localhost:9999/tree
torch の tutorials のファイル一覧が表示されれば成功!
デーモンでの起動
うまく動作したら、デーモンでの動作方法として、以下のコマンドを実行。
Linux を想定していますが、`pwd`
を絶対パスを指定することで、
ホスト側のフォルダをマウントすることができます。
自分のファイルは、itorch での myfolder
となるので、そこに
ファイルを保存するようにすれば、永続的に利用できます。
ちなみにdocker は、ユーザが作業しているファイルをイメージに保存しておくことができないので、このようにフォルダをマウントします。
docker run -d -p 9999:9999 -v `pwd`:/root/tutorials/myfolder -it kkoba84/itorch-docker /root/torch/install/bin/itorch notebook --profile=itorch_svr`
動作確認
デーモンとして動作しているかどうかは docker ps -a
で確認
デーモンの停止
docker ps -a
で確認したCONTAINER ID を指定して
docker stop {CONTAINER ID}
stop
コマンドで停止します。
イメージの削除
docker rm {CONTAINER ID}
boot2docker を使う場合
boot2docker では、VirtualBox のIPを事前に調べておく
boot2docker ip
デーモンモードのスクリプトのパスがlinuxとは異なるので、一度 bash を
起動させてからにする
docker run -p 9999:9999 -it kkoba84/itorch
itorchを起動.この場合、/root/tutorials になっている前提。
itorch notebook --profile=itorch_svr
起動したら、
http://{boot2docker ipで調べたIPアドレス}:9999/
で確認。