技術は使ってなんぼ

自分が得たものを誰かの役に立てたい

ディープラーニングの開発環境を構築しよう     ②docker(Windows Home)

前回の記事で、VirtualBoxをインストールしたのですが、

仮想環境について色々勉強していたら、「docker」なるものの存在を知りました。

 

今後の開発効率と、私自身の勉強も兼ねて、dockerに挑戦してみたいと思います。

 

私のPC環境

■OS:Window10 Home(64bit)

■CPU:Intel Core i7-6700HQ

GPUNVIDIA GeForce GTX 950M

 

あ、今更ですが、ディープラーニングにはGPUはほぼ必須です。

なくても動作できますが、CPUだけでは処理に恐ろしく時間がかかる可能性があります。

 

dockerToolboxは以下から取得してください。

github.com

 

【注意点!】

Windows Homeをお使いの方は、「Desktop for Windows」ではなく、「docker Toolbox」をインストールしてください。

「Desktop for Windows」だと、Windowsの更新が必要な場合があり、更新した結果不具合に巻き込まれるとか色々ハマる可能性があるので注意してください。

 

今回は「V18.09.03」のToolboxで実装してみます。

 

dockerについての日本語サイトとインストール手順は以下を参照ください。

また、以下のサイトはdockerの日本語訳サイトで、参考になる情報が豊富です。

インストール後はdockerのコマンドや構造のイメージの理解のため、チュートリアルを実施することを推奨します。

docs.docker.jp

 

インストールできたら、以下のアイコンを起動します。

 f:id:yonesuke0716:20190703211914p:plain

しばらくロード画面みたいなのが表示され、数分待つと以下のようなターミナルが表示されます。

f:id:yonesuke0716:20190703212145p:plain

C:\Program Files\Docker Toolboxがカレントディレクトリなので、この直下にワークスペースを作ってみます。

その中に、前回ダウンロードした、ppn一式を置いてみます。

 f:id:yonesuke0716:20190705211936p:plain

 こんな感じ。

このフォルダの中に「docker」というフォルダがあり、その中にDockerfileがあります。

これを使えば、ppnが動作する環境を構成する、dockerイメージが作れるはず。

そのイメージファイルからコンテナを作成、起動し、そのコンテナの中でppnの実行ファイルを実行することで動作確認ができるようになる、という目論見です。

dockerは、ちょっとイメージしにくいかもしれませんが、ネットで検索するといろんな情報があるので、自分で調べながらコマンド叩いて動きを把握しないと、多分理解が難しいところかと思います。

需要があれば、どこかで解説やろうかな・・?

 

では、さっそくやってみます。まずはイメージファイルまで

cdで work/chainer-pose-proposal-net-master/docker/gpu まで移動して

f:id:yonesuke0716:20190705213229p:plain

ここでdockerの中身を確認します。

dockerイメージとコンテナの中は、まだ何も作ってないので、以下のように空っぽです。

f:id:yonesuke0716:20190705213553p:plain

 で、現在のgpuフォルダには「Dockerfile」ともうひとつ「build.sh」ファイルがあります。.shはシェルスクリプトですね。Windowsのバッチファイルみたいなものです。

 

コマンドで「bash build.sh」と入力すると、buildが始まります。

しばらくお待ち下さい。私のPCで一時間ほどかかりました。。思った以上にかかりました。。

 

 buildが完了したらDockerイメージを確認してみましょう。

 f:id:yonesuke0716:20190706204603p:plain

 おぉ、「ppn」というのが出来ていますね。「nvidia/cuda」というものも作成されています。

ubuntu」は私が試しに作ってみたものなので、気にしないでください。

 

これで、ppnを動かせる環境が整った(はず)と思います。

ちょっと中身をのぞいてみましょう。

 

イメージからコンテナをつくります。「docker run -it ppn」とコマンドを入力し、「ls」と入力してみましょう。

f:id:yonesuke0716:20190706204939p:plain

 それっぽい構成ですね。おそらくLinuxUbuntu構成ではないでしょうか。

この環境下で、ppnの実行ファイルの動作が確認できると思います。

 

今回はここまで。

次回はcocoのデータセットを使おうと思っていますが、その準備や手順について書いていきます。