【実践】ディープラーニングのチュートリアルをやる際の環境切り替え方法(自分用dockerの作り方)

副業でネットビジネスに取り組んでいるぱーくんと申します。
激務でも増えない給料に失望し、将来のために別の収入源が欲しい!の一心でネットビジネスをはじめ、2018年4月に20万円達成。
ひと月36万アクセスあるサイトを作ったノウハウは無料で公開中。 ⇒⇒コチラ
ネットビジネスで未来を夢見れる方を一人でも増やしたいと思っています。
誰でも最初は初心者。
【やってみたいけど、初心者だから不安】
という方は、ぜひお気軽にお問合せください♪
ディープラーニングの学習を始めようという初心者が、最初につまづくのが、環境構築の壁です。
書籍やWeb記事を参考に、環境構築を行うのですが、使用されているライブラリやソフトがたくさんあるので、少し古い記事になると使われているライブラリのバージョンが古かったり、かといって、最新の機能を試す場合に、ライブラリを最新にすると、昔のソースが動かなかったり。。
そのような時に便利なのが、dockerによる環境の構築です。
異なるバージョンのライブラリをセットアップしたdockerのイメージを作っていれば、複数のライブラリのバージョンによる依存関係を、イメージごとにそろえることができるためです。
それはそうなのですが、dockerによる環境構築を行うところまでは記事がいくつかありますが、実際にどう異なるイメージを作って、切り替えるのかまではなかなか見つけられないので、手順を記載しました。
元となるイメージを持ってきて起動する
まず、元になるイメージを持ってきます。
深層学習のチュートリアルの場合、Jupyter Notebookを使ったサンプルが多いので、これを使えるイメージだと利用しやすいです。
私がよく使うのはtensorflowのリポジトリです。
https://hub.docker.com/r/tensorflow/tensorflow/tags?page=1&ordering=last_updated
ここで、「-jupyter」や「gpu-jupyter」と付くイメージだと、runしたときにJupyter Notebookも起動するので、便利ですから、検索してみます。
「latest-gpu-jupyter」というようなイメージもありますが、これだと最新版のライブラリがセットアップされますので、ライブラリの更新があったときに、ほかの自分で追加するライブラリとの不整合を起こすかもしれません。
なので、「2.4.0-gpu-jupyter」といったバージョン指定でイメージを持ってきます。
1 | $ sudo service docker start |
でdockerを起動した後
1 | $ docker run --name t24 -it --gpus all -p 8888:8888 tensorflow/tensorflow:2.4.0-gpu-jupyter |
といったコマンドでrunさせます。(ローカルにイメージが無ければ、ダウンロードされます。)
コマンド中の「t24」は、起動させるコンテナ名です。
指定してrunした方が、後々扱いやすいでしょう。
起動したコンテナの内容(ライブラリのバージョン)を確認
起動後、docker ps
で、起動とコンテナ名の確認を行います。
1 2 3 | $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 07c0f8183720 tensorflow/tensorflow:2.4.0-gpu-jupyter "bash -c 'source /et…" About an hour ago Up 2 seconds 0.0.0.0:8888->8888/tcp t24 |
下記の記事に記載したように、初めて持ってきたイメージの詳細な情報を確認するコマンドを使ってもいいです。
起動したコンテナ名を確認したら(この場合はt24)、docker exec
を使って、そのコンテナにシェルで入ります。
1 | $ docker exec -it t24 bash |
次にやることは、コンテナにインストールされているライブラリとそのバージョンの確認です。
1 | $ pip list |
とやると、下記のように、ライブラリ(パッケージ)とそのバージョンが表示されます。
例えば、tensorflowはバージョン2.4.0が入っているけど、Kerasは入っていない という場合は、2.4.0のtensorflowに対応するKerasを調べて、インストールすればよいですよね。
pipで、パッケージのバージョンを指定してインストールするには、
1 | $ pip install keras==2.3.1 |
のように「==」の後にバージョンを指定します。
必要なパッケージをインストールしたら、書籍やWeb記事のコードが動くか確認してみます。
これはJupyterのイメージですので、ブラウザで http://localhost:8888/
にアクセスするとJupyter Notebookが開きますので、確認します。
自分独自のイメージを作る
パッケージを適宜インストールして、動くことが確認出来たら、自分でインストールしたパッケージを加えた、自分流dockerイメージを作りましょう。
Dockerfileという名前でbuild用のファイルを作り、以下のように記載します。
自分流Dockerfileの例(Dockerfile)
1 2 3 4 5 | # See all tag variants at https://hub.docker.com/r/tensorflow/tensorflow/tags/ FROM tensorflow/tensorflow:2.4.0-gpu-jupyter RUN pip install --upgrade pip RUN pip install keras--2.4.3 #for tensorflow-gpu==2.4 |
Dockerfileができたら、そのディレクトリに移動し、docker build [ -t {イメージ名} [ :{タグ名} ] ] {Dockerfileのあるディレクトリ}
と打って、自分用イメージをbuildします。
ついでに起動もします。
1 2 3 | $ docker build --no-cache -t mytf/mytf:tf2.4-gpu-jupyter . $ docker run --name myt24 -it --gpus all -p 8888:8888 mytf/mytf:tf2.4-gpu-jupyter |
副業でネットビジネスに取り組んでいるぱーくんと申します。
激務でも増えない給料に失望し、将来のために別の収入源が欲しい!の一心でネットビジネスをはじめ、2018年4月に20万円達成。
ひと月36万アクセスあるサイトを作ったノウハウは無料で公開中。 ⇒⇒コチラ
ネットビジネスで未来を夢見れる方を一人でも増やしたいと思っています。
誰でも最初は初心者。
【やってみたいけど、初心者だから不安】
という方は、ぜひお気軽にお問合せください♪