1.すぐにプログラムを動かしたい方へ(as soon as you want)
Antonio Gulli、Sujit Pal 著、大串 正矢 、久保 隆宏、中山 光樹 訳
https://www.oreilly.co.jp/books/9784873118260/
docker
dockerは複数人で同じ設定で作業、実験、実習ができるとても便利な道具です。
今、利用しているPCの環境と全く別に作ります。
PCでどのような設定をしていても、dockerが起動し、ネットがつながれば大丈夫です。ここでは、本で紹介しているdockerの資料に直接基づかず、すぐに利用できる環境を提供し、またご自身で新たに導入したソフトを含めて、保存しておく方法を紹介します。
<この項は書きかけです。順次追記します。>
docker起動
dockerを導入し、Windows, Macではdockerを起動しておいてください。
Windowsでは、BiosでIntel Virtualizationをenableにしないとdockerが起動しない場合があります。
また、セキュリティの警告などが出ることがあります。
システム管理者での作業が必要になります。
docker pull and run
第1章までやった段階
$ docker pull kaizenjapan/anaconda-keras
$ docker run -it -p 8888:8888 -p 6006:6006 kaizenjapan/anaconda-keras /bin/bash
第2章までやった段階(sample data2つだけ)
quiverのソースを見るとport 8000なのでrun時に追記。
$ docker pull kaizenjapan/anaconda-keras-ten
$ docker run -it -p 8888:8888 -p 6006:6006 -p8000:8000 kaizenjapan/anaconda-keras-ten /bin/bash
dockerの中と、dockerを起動したOSのシェルとが表示が似ている場合には、どちらで操作しているか間違えることがあります。dockerの入力促進記号(comman prompt)は、docker idの数字が何桁かついています。
第1章
以下のshell sessionでは
(base) root@b789c278e622:/#
は入力促進記号(comman prompt)です。実際には数字の部分が違うかもしれません。この行の#の右側を入力してください。
それ以外の行は出力です。出力にエラー、違いがあれば、コメント欄などでご連絡くださると幸いです。
それぞれの章のフォルダに移動します。
(base) root@b789c278e622:/# ls
bin boot deep-learning-with-keras-ja dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
(base) root@b789c278e622:/# cd deep-learning-with-keras-ja/
(base) root@b789c278e622:/deep-learning-with-keras-ja# ls
README.md ch01 ch02 ch03 ch04 ch05 ch06 ch07 ch08 deep-learning-with-keras-ja.png
(base) root@b789c278e622:/deep-learning-with-keras-ja# cd ch01
(base) root@b789c278e622:/deep-learning-with-keras-ja/ch01# ls
keras_MINST_V1.py keras_MINST_V2.py keras_MINST_V3.py keras_MINST_V4.py make_tensorboard.py requirements.txt requirements_gpu.txt
(base) root@b789c278e622:/deep-learning-with-keras-ja/ch01# cat requirements.txt
keras==2.1.6
tensorflow==1.8.0
h5py==2.7.1
keras_MINST_V1.py
(base) root@b789c278e622:/deep-learning-with-keras-ja/ch01# python keras_MINST_V1.py
/opt/conda/lib/python3.6/site-packages/h5py/__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
from ._conv import register_converters as _register_converters
Using TensorFlow backend.
Downloading data from https://s3.amazonaws.com/img-datasets/mnist.npz
11493376/11490434 [==============================] - 5s 0us/step
60000 train samples
10000 test samples
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
dense_1 (Dense) (None, 10) 7850
_________________________________________________________________
activation_1 (Activation) (None, 10) 0
=================================================================
Total params: 7,850
Trainable params: 7,850
Non-trainable params: 0
_________________________________________________________________
Train on 48000 samples, validate on 12000 samples
2018-09-22 04:48:47.866481: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: SSE4.1 SSE4.2 AVX AVX2 FMA
2018-09-22 04:48:47.869849: I tensorflow/core/common_runtime/process_util.cc:69] Creating new thread pool with default inter op setting: 2. Tune using inter_op_parallelism_threads for best performance.
Epoch 1/200
48000/48000 [==============================] - 2s 44us/step - loss: 1.3633 - acc: 0.6796 - val_loss: 0.8904 - val_acc: 0.8246
Epoch 2/200
48000/48000 [==============================] - 2s 35us/step - loss: 0.7913 - acc: 0.8272 - val_loss: 0.6572 - val_acc: 0.8546
Epoch 3/200
48000/48000 [==============================] - 2s 35us/step - loss: 0.6436 - acc: 0.8497 - val_loss: 0.5625 - val_acc: 0.8681
(中略)
Epoch 200/200
48000/48000 [==============================] - 2s 32us/step - loss: 0.2761 - acc: 0.9230 - val_loss: 0.2756 - val_acc: 0.9241
10000/10000 [==============================] - 1s 53us/step
Test score: 0.27738585728406906
Test accuracy: 0.9227
(base) root@b789c278e622:/deep-learning-with-keras-ja/ch01# tensorboard --logdir=.
[1] 391
/opt/conda/lib/python3.6/site-packages/h5py/__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
from ._conv import register_converters as _register_converters
TensorBoard 1.9.0 at http://b789c278e622:6006 (Press CTRL+C to quit)
dockerを起動したOSのブラウザで localhost:6006 を表示してください。
現在、Windowsではまだうまく表示していません。(20190924現在)
keras_MINST_V2.py
(base) root@b789c278e622:/deep-learning-with-keras-ja/ch01# python keras_MINST_V2.py
/opt/conda/lib/python3.6/site-packages/h5py/__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
from ._conv import register_converters as _register_converters
Using TensorFlow backend.
60000 train samples
10000 test samples
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
dense_1 (Dense) (None, 128) 100480
_________________________________________________________________
activation_1 (Activation) (None, 128) 0
_________________________________________________________________
dense_2 (Dense) (None, 128) 16512
_________________________________________________________________
activation_2 (Activation) (None, 128) 0
_________________________________________________________________
dense_3 (Dense) (None, 10) 1290
_________________________________________________________________
activation_3 (Activation) (None, 10) 0
=================================================================
Total params: 118,282
Trainable params: 118,282
Non-trainable params: 0
_________________________________________________________________
Train on 48000 samples, validate on 12000 samples
2018-09-22 05:02:39.152849: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: SSE4.1 SSE4.2 AVX AVX2 FMA
2018-09-22 05:02:39.154648: I tensorflow/core/common_runtime/process_util.cc:69] Creating new thread pool with default inter op setting: 2. Tune using inter_op_parallelism_threads for best performance.
Epoch 1/20
48000/48000 [==============================] - 3s 64us/step - loss: 1.4815 - acc: 0.6234 - val_loss: 0.7570 - val_acc: 0.8286
Epoch 2/20
48000/48000 [==============================] - 3s 57us/step - loss: 0.6041 - acc: 0.8463 - val_loss: 0.4545 - val_acc: 0.8851
Epoch 3/20
48000/48000 [==============================] - 3s 63us/step - loss: 0.4394 - acc: 0.8803 - val_loss: 0.3706 - val_acc: 0.9020
Epoch 4/20
48000/48000 [==============================] - 3s 70us/step - loss: 0.3765 - acc: 0.8952 - val_loss: 0.3320 - val_acc: 0.9078
Epoch 5/20
48000/48000 [==============================] - 3s 58us/step - loss: 0.3414 - acc: 0.9026 - val_loss: 0.3054 - val_acc: 0.9147
Epoch 6/20
48000/48000 [==============================] - 3s 58us/step - loss: 0.3175 - acc: 0.9085 - val_loss: 0.2880 - val_acc: 0.9184
Epoch 7/20
48000/48000 [==============================] - 3s 54us/step - loss: 0.2990 - acc: 0.9136 - val_loss: 0.2728 - val_acc: 0.9224
Epoch 8/20
48000/48000 [==============================] - 3s 54us/step - loss: 0.2840 - acc: 0.9180 - val_loss: 0.2609 - val_acc: 0.9266
Epoch 9/20
48000/48000 [==============================] - 3s 58us/step - loss: 0.2716 - acc: 0.9217 - val_loss: 0.2506 - val_acc: 0.9296
Epoch 10/20
48000/48000 [==============================] - 2s 48us/step - loss: 0.2605 - acc: 0.9252 - val_loss: 0.2434 - val_acc: 0.9309
Epoch 11/20
48000/48000 [==============================] - 3s 63us/step - loss: 0.2505 - acc: 0.9285 - val_loss: 0.2344 - val_acc: 0.9330
Epoch 12/20
48000/48000 [==============================] - 2s 52us/step - loss: 0.2412 - acc: 0.9299 - val_loss: 0.2275 - val_acc: 0.9352
Epoch 13/20
48000/48000 [==============================] - 3s 62us/step - loss: 0.2329 - acc: 0.9332 - val_loss: 0.2231 - val_acc: 0.9365
Epoch 14/20
48000/48000 [==============================] - 2s 50us/step - loss: 0.2257 - acc: 0.9350 - val_loss: 0.2152 - val_acc: 0.9394
Epoch 15/20
48000/48000 [==============================] - 3s 55us/step - loss: 0.2185 - acc: 0.9374 - val_loss: 0.2086 - val_acc: 0.9413
Epoch 16/20
48000/48000 [==============================] - 2s 48us/step - loss: 0.2120 - acc: 0.9391 - val_loss: 0.2034 - val_acc: 0.9427
Epoch 17/20
48000/48000 [==============================] - 3s 59us/step - loss: 0.2059 - acc: 0.9410 - val_loss: 0.1985 - val_acc: 0.9447
Epoch 18/20
48000/48000 [==============================] - 3s 61us/step - loss: 0.2000 - acc: 0.9427 - val_loss: 0.1936 - val_acc: 0.9454
Epoch 19/20
48000/48000 [==============================] - 3s 55us/step - loss: 0.1946 - acc: 0.9430 - val_loss: 0.1900 - val_acc: 0.9465
Epoch 20/20
48000/48000 [==============================] - 3s 53us/step - loss: 0.1896 - acc: 0.9453 - val_loss: 0.1855 - val_acc: 0.9495
10000/10000 [==============================] - 1s 58us/step
Test score: 0.18647454718351364
Test accuracy: 0.9458
(base) root@b789c278e622:/deep-learning-with-keras-ja/ch01# tensorboard --logdir=.
dockerを起動したOSのブラウザで localhost:6006 を表示してください。
keras_MINST_V3.py
# python keras_MINST_V3.py
/opt/conda/lib/python3.6/site-packages/h5py/__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
from ._conv import register_converters as _register_converters
Using TensorFlow backend.
60000 train samples
10000 test samples
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
dense_1 (Dense) (None, 128) 100480
_________________________________________________________________
activation_1 (Activation) (None, 128) 0
_________________________________________________________________
dropout_1 (Dropout) (None, 128) 0
_________________________________________________________________
dense_2 (Dense) (None, 128) 16512
_________________________________________________________________
activation_2 (Activation) (None, 128) 0
_________________________________________________________________
dropout_2 (Dropout) (None, 128) 0
_________________________________________________________________
dense_3 (Dense) (None, 10) 1290
_________________________________________________________________
activation_3 (Activation) (None, 10) 0
=================================================================
Total params: 118,282
Trainable params: 118,282
Non-trainable params: 0
_________________________________________________________________
Train on 48000 samples, validate on 12000 samples
2018-09-24 12:39:51.444177: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: SSE4.1 SSE4.2 AVX AVX2 FMA
2018-09-24 12:39:51.450098: I tensorflow/core/common_runtime/process_util.cc:69] Creating new thread pool with default inter op setting: 2. Tune using inter_op_parallelism_threads for best performance.
Epoch 1/20
48000/48000 [==============================] - 4s 73us/step - loss: 1.7388 - acc: 0.4541 - val_loss: 0.9260 - val_acc: 0.8131
Epoch 2/20
48000/48000 [==============================] - 3s 58us/step - loss: 0.9221 - acc: 0.7228 - val_loss: 0.5388 - val_acc: 0.8652
Epoch 3/20
48000/48000 [==============================] - 3s 55us/step - loss: 0.6933 - acc: 0.7877 - val_loss: 0.4291 - val_acc: 0.8883
(中略)
Epoch 19/20
48000/48000 [==============================] - 3s 55us/step - loss: 0.3023 - acc: 0.9118 - val_loss: 0.2019 - val_acc: 0.9409
Epoch 20/20
48000/48000 [==============================] - 3s 55us/step - loss: 0.2935 - acc: 0.9129 - val_loss: 0.1975 - val_acc: 0.9420
10000/10000 [==============================] - 0s 49us/step
Test score: 0.19955925024673343
Test accuracy: 0.9401
(base) root@987be32a0721:/deep-learning-with-keras-ja/ch01# tensorboard --logdir=.
[1] 391/opt/conda/lib/python3.6/site-packages/h5py/__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
from ._conv import register_converters as _register_converters
TensorBoard 1.9.0 at http://987be32a0721:6006 (Press CTRL+C to quit)
keras_MINST_V4.py
(base) root@987be32a0721:/deep-learning-with-keras-ja/ch01# python keras_MINST_V4.py
/opt/conda/lib/python3.6/site-packages/h5py/__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
from ._conv import register_converters as _register_converters
Using TensorFlow backend.
60000 train samples
10000 test samples
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
dense_1 (Dense) (None, 128) 100480
_________________________________________________________________
activation_1 (Activation) (None, 128) 0
_________________________________________________________________
dropout_1 (Dropout) (None, 128) 0
_________________________________________________________________
dense_2 (Dense) (None, 128) 16512
_________________________________________________________________
activation_2 (Activation) (None, 128) 0
_________________________________________________________________
dropout_2 (Dropout) (None, 128) 0
_________________________________________________________________
dense_3 (Dense) (None, 10) 1290
_________________________________________________________________
activation_3 (Activation) (None, 10) 0
=================================================================
Total params: 118,282
Trainable params: 118,282
Non-trainable params: 0
_________________________________________________________________Train on 48000 samples, validate on 12000 samples
2018-09-24 12:49:03.821580: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: SSE4.1 SSE4.2 AVX AVX2 FMA
2018-09-24 12:49:03.824188: I tensorflow/core/common_runtime/process_util.cc:69] Creating new thread pool with default inter op setting: 2. Tune using inter_op_parallelism_threads for best performance.
Epoch 1/20
48000/48000 [==============================] - 3s 71us/step - loss: 0.4912 - acc: 0.8504 - val_loss: 0.1860 - val_acc: 0.9458
Epoch 2/20
48000/48000 [==============================] - 3s 63us/step - loss: 0.2395 - acc: 0.9283 - val_loss: 0.1398 - val_acc: 0.9570
Epoch 3/20
48000/48000 [==============================] - 3s 64us/step - loss: 0.1859 - acc: 0.9438 - val_loss: 0.1179 - val_acc: 0.9657
(中略)
Epoch 19/20
48000/48000 [==============================] - 3s 62us/step - loss: 0.0750 - acc: 0.9781 - val_loss: 0.0976 - val_acc: 0.9780
Epoch 20/20
48000/48000 [==============================] - 3s 64us/step - loss: 0.0723 - acc: 0.9786 - val_loss: 0.0955 - val_acc: 0.9792
10000/10000 [==============================] - 1s 54us/step
Test score: 0.0878591103206294
Test accuracy: 0.9794
(base) root@987be32a0721:/deep-learning-with-keras-ja/ch01# tensorboard --logdir=. &
本ではtensorboard --logdir=.
と書かれています。
最後に空白と&を書けば、次の入力が可能になります。
ただし、procpsをinstallし、psコマンドで起動しているtensorboardをkillしないとエラーになります。
# apt install -y procps
# ps -ax
PID TTY STAT TIME COMMAND
1 pts/0 Ss 0:00 /usr/bin/tini -- /bin/bash
6 pts/0 S 0:00 /bin/bash
41 pts/0 Sl 0:04 /opt/conda/bin/python /opt/conda/bin/tensorboard --logdir=.
210 pts/0 R+ 0:00 ps -ax
# kill 41
第2章
(base) root@987be32a0721:/deep-learning-with-keras-ja/ch02# python quiver.py
/opt/conda/lib/python3.6/site-packages/h5py/__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
from ._conv import register_converters as _register_converters
Using TensorFlow backend.
Downloading data from https://github.com/fchollet/deep-learning-models/releases/download/v0.1/vgg16_weights_tf_dim_ordering_tf_kernels.h5
553467904/553467096 [==============================] - 830s 2us/step
2018-09-25 04:54:41.975093: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: SSE4.1 SSE4.2 AVX AVX2 FMA
2018-09-25 04:54:41.977013: I tensorflow/core/common_runtime/process_util.cc:69] Creating new thread pool with default inter op setting: 2. Tune using inter_op_parallelism_threads for best performance.
Starting webserver from: /opt/conda/lib/python3.6/site-packages/quiver_engine
最初はserver.pyでエラーが出た。gevent.wsgiというファイルはないらしい。
from gevent.wsgi import WSGIServer
の行でエラーがでている。検索するとgevent.pywsgtはあるらしい。
from gevent.pywsgi import WSGIServer
編集は
# vi /opt/conda/lib/python3.6/site-packages/quiver_engine/server.py
sample_imagesを作り、他の章からのデータをコピー。ブラウザでlocalhost:8000を開く。
操作中に下記エラーあり。
FileNotFoundError: [Errno 2] No such file or directory: './tmp/block3_pool_0_cat.png.png'
現在検討中。
2. dockerを自力で構築する方へ
anaconda/keras/tensorflow方針(docker deploy policy)
ここから下は、上記のpullしていただいたdockerをどういう方針で、どういう手順で作ったかを記録します。
上記のdockerを利用する上での参考資料です。1章の続きをする上では必要ありません。
自力でdocker/anaconda/keras/tensorflowを構築する場合の手順になります。
dockerfileを作る方法ではありません。ごめんなさい。
docker
ubuntu, debianなどのLinuxを、linux, windows, mac osから共通に利用できる仕組み。
利用するOSの設定を変更せずに利用できるのがよい。
同じ仕様で、大量の人が利用することができる。
ソフトウェアの開発元が公式に対応しているものと、利用者が便利に仕立てたものの両方が利用可能である。今回は、公式に配布しているものを、自分で仕立てて、他の人にも利用できるようにする。
python
DeepLearningの実習をPhthonで行って来た。
pythonを使う理由は、多くの機械学習の仕組みがpythonで利用できることと、Rなどの統計解析の仕組みもpythonから容易に利用できることがある。
anaconda
pythonには、2と3という版の違いと、配布方法の違いなどがある。
Anacondaでpython3をこの1年半利用してきた。
Anacondaを利用した理由は、統計解析のライブラリと、JupyterNotebookが初めから入っているからである。
docker公式配布
ubuntu, debianなどのOSの公式配布,gcc, anacondaなどの言語の公式配布などがある。
これらを利用し、docker-hubに登録することにより、公式配布の質の確認と、変更権を含む幅広い情報の共有ができる。dockerが公式配布するものではなく、それぞれのソフト提供者の公式配布という意味。
docker pull
docker公式配布の利用は、URLからpullすることで実現する。
docker Anaconda
anacondaが公式配布しているものを利用。
$ docker pull continuumio/anaconda3
Using default tag: latest
latest: Pulling from continuumio/anaconda3
cc1a78bfd46b: Pull complete
314b82d3c9fe: Pull complete
adebea299011: Pull complete
f7baff790e81: Pull complete
Digest: sha256:e07b9ca98ac1eeb1179dbf0e0bbcebd87701f8654878d6d8ce164d71746964d1
Status: Downloaded newer image for continuumio/anaconda3:latest
docker run
実行はdocker runである。今回はブラウザで閲覧するため-pの設定を行う。
$ docker run -it -p 8888:8888 -p 6006:6006 continuumio/anaconda3 /bin/bash
(base) root@0da2c87a513f:/#
apt
ubuntu, debianはDebian系の道具類の配布の仕組みが利用できる。
aptのよいところは、debianというカーネルの開発者が大勢集まっており、基本機能の整合性を厳密に取っているところにある。
通信規約の改良にあたって、Linuxのカーネルに手を入れる必要があったときに、ソースをaptで導入し、patch適用後コンパイルしてもエラーなくコンパイルできて以来、linuxといえばaptが利用できるDebian系を愛用している。
Raspberry PIで有名なRaspbianもDebian系で、aptが利用できる。
そのため、dockerで作業した状況をRaspbianで再現することはとても容易である。
(base) root@0da2c87a513f:/# apt update; apt -y upgrade
conda install
pythonには、pipというpythonのライブラリ等を導入する仕組みがある。
今回は、condaというanaconda専用のライブラリ導入の仕組みを利用してみる。
pipではなくcondaを利用した理由は、本に書いてあるように作業したらエラーでうまくいかなかったから。
直感Deep Learning, dockerに挑戦(1) pull 書籍通り
https://qiita.com/kaizen_nagoya/items/5c736539d7d096c0a161
tensorflow
# conda install tensorflow
Solving environment: done
## Package Plan ##
environment location: /opt/conda
added / updated specs:
- tensorflow
The following packages will be downloaded:
package | build
---------------------------|-----------------
_tflow_190_select-0.0.3 | mkl 2 KB
tensorboard-1.9.0 | py36hf484d3e_0 3.3 MB
termcolor-1.1.0 | py36_1 7 KB
protobuf-3.6.0 | py36hf484d3e_0 610 KB
tensorflow-base-1.9.0 |mkl_py36h2ca6a6a_0 75.7 MB
tensorflow-1.9.0 |mkl_py36h6d6ce78_1 3 KB
gast-0.2.0 | py36_0 15 KB
markdown-2.6.11 | py36_0 104 KB
grpcio-1.12.1 | py36hdbcaa40_0 1.7 MB
libprotobuf-3.6.0 | hdbcaa40_0 4.1 MB
conda-4.5.11 | py36_0 1.0 MB
absl-py-0.4.1 | py36_0 144 KB
astor-0.7.1 | py36_0 43 KB
------------------------------------------------------------
Total: 86.7 MB
The following NEW packages will be INSTALLED:
_tflow_190_select: 0.0.3-mkl
absl-py: 0.4.1-py36_0
astor: 0.7.1-py36_0
gast: 0.2.0-py36_0
grpcio: 1.12.1-py36hdbcaa40_0
libprotobuf: 3.6.0-hdbcaa40_0
markdown: 2.6.11-py36_0
protobuf: 3.6.0-py36hf484d3e_0
tensorboard: 1.9.0-py36hf484d3e_0
tensorflow: 1.9.0-mkl_py36h6d6ce78_1
tensorflow-base: 1.9.0-mkl_py36h2ca6a6a_0
termcolor: 1.1.0-py36_1
The following packages will be UPDATED:
conda: 4.5.4-py36_0 --> 4.5.11-py36_0
Proceed ([y]/n)? y
Downloading and Extracting Packages
_tflow_190_select-0. | 2 KB | ####################################################################################################################################### | 100%
tensorboard-1.9.0 | 3.3 MB | ####################################################################################################################################### | 100%
termcolor-1.1.0 | 7 KB | ####################################################################################################################################### | 100%
protobuf-3.6.0 | 610 KB | ####################################################################################################################################### | 100%
tensorflow-base-1.9. | 75.7 MB | ####################################################################################################################################### | 100%
tensorflow-1.9.0 | 3 KB | ####################################################################################################################################### | 100%
gast-0.2.0 | 15 KB | ####################################################################################################################################### | 100%
markdown-2.6.11 | 104 KB | ####################################################################################################################################### | 100%
grpcio-1.12.1 | 1.7 MB | ####################################################################################################################################### | 100%
libprotobuf-3.6.0 | 4.1 MB | ####################################################################################################################################### | 100%
conda-4.5.11 | 1.0 MB | ####################################################################################################################################### | 100%
absl-py-0.4.1 | 144 KB | ####################################################################################################################################### | 100%
astor-0.7.1 | 43 KB | ####################################################################################################################################### | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
keras
(base) root@0da2c87a513f:/# conda install keras
Solving environment: done
## Package Plan ##
environment location: /opt/conda
added / updated specs:
- keras
The following packages will be downloaded:
package | build
---------------------------|-----------------
keras-applications-1.0.4 | py36_1 47 KB
keras-2.2.2 | 0 6 KB
keras-base-2.2.2 | py36_0 445 KB
keras-preprocessing-1.0.2 | py36_1 46 KB
------------------------------------------------------------
Total: 544 KB
The following NEW packages will be INSTALLED:
keras: 2.2.2-0
keras-applications: 1.0.4-py36_1
keras-base: 2.2.2-py36_0
keras-preprocessing: 1.0.2-py36_1
Proceed ([y]/n)? y
Downloading and Extracting Packages
keras-applications-1 | 47 KB | ##################################################################################################################################### | 100%
keras-2.2.2 | 6 KB | ##################################################################################################################################### | 100%
keras-base-2.2.2 | 445 KB | ##################################################################################################################################### | 100%
keras-preprocessing- | 46 KB | ##################################################################################################################################### | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
直感Deep Learning取得
https://www.oreilly.co.jp/books/9784873118260/
本ではdockerの推奨のURL等を掲載している。うまくいかなかったので、今回は上記方針に従い、anacondaで実施している。ただし、日本語版の書籍の資料は本にあるURLからgitで取得する。
(base) root@b789c278e622:/# git clone https://github.com/oreilly-japan/deep-learning-with-keras-ja.git
Cloning into 'deep-learning-with-keras-ja'...
remote: Enumerating objects: 10, done.
remote: Counting objects: 100% (10/10), done.
remote: Compressing objects: 100% (10/10), done.
remote: Total 127 (delta 4), reused 0 (delta 0), pack-reused 117
Receiving objects: 100% (127/127), 35.94 MiB | 6.23 MiB/s, done.
Resolving deltas: 100% (30/30), done.
第二章用
quiver_engine
(base) root@b789c278e622:/# conda install quiver_engine
Solving environment: done
## Package Plan ##
environment location: /opt/conda
added / updated specs:
- quiver_engine
The following packages will be downloaded:
package | build
---------------------------|-----------------
quiver_engine-0.1.4.1.4 | py36h1714ad7_0 366 KB
The following NEW packages will be INSTALLED:
quiver_engine: 0.1.4.1.4-py36h1714ad7_0
Proceed ([y]/n)? y
Downloading and Extracting Packages
quiver_engine-0.1.4. | 366 KB | ##################################################################################################################################### | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
sample_imagesのフォルダがないとエラーになる。ファイルがないと困る。ひとまずch03からコピー
# cd /deep-learning-with-keras-ja/ch02
# mkdir sample_images
# cp ../ch03/sample_images sample_images
3. docker hub 登録
ここからは、新たにソフトを導入したdockerを自分のhubに登録する方法です。
ご自身で何かソフトウェアを導入されたら、ぜひhubに登録することをお勧めします。
docker hubへのID登録が必要になります。
続きの作業を誰かに依頼したり、エラーがでてわからなくなったときに、対処方法を問い合わせるのにも役立ちます。ご自身のIDご登録ください。
第1章やった段階
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b789c278e622 continuumio/anaconda3 "/usr/bin/tini -- /b…" 21 hours ago Up 21 hours 0.0.0.0:6006->6006/tcp, 0.0.0.0:8888->8888/tcp peaceful_noyce
$ docker commit b789c278e622 kaizenjapan/anaconda-keras
$ docker push kaizenjapan/anaconda-keras:latest
The push refers to repository [docker.io/kaizenjapan/anaconda-keras]
95456260f6d1: Pushed
6410333f34cf: Pushed
cf342e34eca3: Pushing [==================> ] 1.21GB/3.27GB
cea95006e36a: Pushed
0f3a12fef684: Pushed
第2章やった段階
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
987be32a0721 kaizenjapan/anaconda-keras "/usr/bin/tini -- /b…" 24 hours ago Up 24 hours 0.0.0.0:6006->6006/tcp, 0.0.0.0:8888->8888/tcp ecstatic_feynman
$ docker commit 987be32a0721 kaizenjapan/anaconda-keras-ten
sha256:74cc1049f336fc78ce8a86fd7d3ceb38f565da1e2126e73270b61c7da028a5ee
$ docker push kaizenjapan/anaconda-keras-ten
The push refers to repository [docker.io/kaizenjapan/anaconda-keras-ten]
3e852b70ae29: Pushed
95456260f6d1: Mounted from kaizenjapan/anaconda-keras
6410333f34cf: Mounted from kaizenjapan/anaconda-deep
cf342e34eca3: Mounted from kaizenjapan/anaconda-deep
cea95006e36a: Mounted from kaizenjapan/anaconda-deep
0f3a12fef684: Mounted from kaizenjapan/anaconda-deep
latest: digest: sha256:5579381c4128250000bdd71d89bcc857e900059edbc2b31d50b255a97edf5385 size: 1592
4. 参考資料(reference)
なぜdockerで機械学習するか 書籍・ソース一覧作成中 (目標100)
https://qiita.com/kaizen_nagoya/items/ddd12477544bf5ba85e2#_reference-40b38c41d167b42beeb9
dockerで機械学習(1) with anaconda(1)「ゼロから作るDeep Learning - Pythonで学ぶディープラーニングの理論と実装」斎藤 康毅 著
https://qiita.com/kaizen_nagoya/items/a7e94ef6dca128d035ab
dockerで機械学習(2)with anaconda(2)「ゼロから作るDeep Learning2自然言語処理編」斎藤 康毅 著
https://qiita.com/kaizen_nagoya/items/3b80dfc76933cea522c6
dockerで機械学習(6) with anaconda(6)「 scikit-learnとTensorFlowによる実践機械学習」Aurélien Géron 著
https://qiita.com/kaizen_nagoya/items/140428dfce7e3234ceb7
dockerで機械学習(17) with anaconda(17)「PythonとKerasによるディープラーニング」 :Francois Chollet著
https://qiita.com/kaizen_nagoya/items/bce4fa73560370733ea2
dockerで機械学習(71) 環境構築(1) docker どっかーら、どーやってもエラーばっかり。
https://qiita.com/kaizen_nagoya/items/690d806a4760d9b9e040
dockerで機械学習(72) 環境構築(2) Docker for Windows
https://qiita.com/kaizen_nagoya/items/c4daa5cf52e9f0c2c002
dockerで機械学習(73) 環境構築(3) docker/linux/macos bash スクリプト, ms-dos batchファイル
https://qiita.com/kaizen_nagoya/items/3f7b39110b7f303a5558
dockerで機械学習(74) 環境構築(4) R 難関いくつ?
https://qiita.com/kaizen_nagoya/items/5fb44773bc38574bcf1c
dockerで機械学習(75)環境構築(5)docker関連ファイルの管理
https://qiita.com/kaizen_nagoya/items/4f03df9a42c923087b5d
「名古屋のIoTは名古屋のOSで」Dockerをどっかーらどうやって使えばいいんでしょう。TOPPERS/FMP on RaspberryPi with Macintosh編 5つの関門
https://qiita.com/kaizen_nagoya/items/9c46c6da8ceb64d2d7af
64bitCPUへの道 and/or 64歳の決意
https://qiita.com/kaizen_nagoya/items/cfb5ffa24ded23ab3f60
ゼロから作るDeepLearning2自然言語処理編 読書会の進め方(例)
https://qiita.com/kaizen_nagoya/items/025eb3f701b36209302e
Docker for windows
BIOSでInte Virtualization をenableにしていないと動作しないことを書いていない記事が多い。なぜかは調査中。
今更Docker for Windowsをインストールしたのでその備忘録
https://qiita.com/toro_ponz/items/d66d5571c4646ad33279
Docker for Windowsで起動時に「Docker for Windows - Access denied」と表示される場合の対処法
https://qiita.com/toro_ponz/items/d75706a3039f00ba1205
Windows 10 Hyper-Vユーザに送るDockerの解説
https://qiita.com/banban525/items/48aec05671c3c77d454a
Docker for WindowsでDockerを学ぶ (バージョンCE 17.06.2)
https://qiita.com/rubytomato@github/items/eec2118e89ee9bd8d17a
Docker for Windows をインストールする
https://qiita.com/centipede/items/f8d77b66343ef5096eee
Windows 10(Surface)にDocker for Windowsをインストール
https://qiita.com/chakimar/items/868298096ebf9186d690
5. お詫び(I am sorry)
docker hubへの登録、2度失敗しました。最後の1ファイルが100%になったので、この記事を投稿しました。1度目の失敗です。
Windowsのdockerからpullしようとしたら、うまくいかず、よく見ると、作業がいつまでも終了せずに最後にEOFが出ていました。
$ docker push kaizenjapan/anaconda-keras:latest
The push refers to repository [docker.io/kaizenjapan/anaconda-keras]
95456260f6d1: Pushed
6410333f34cf: Pushed
cf342e34eca3: Pushing [==================================================>] 3.27GB/3.27GB
cea95006e36a: Pushed
0f3a12fef684: Pushed
EOF
2度目は、上記の3.27Gのところが、3.34GB以上pushingした状態になっても、終了せずに失敗だったようです。retryをはじめました。
3度目の正直で登録が完了しました。ところが、登録が完了しても数分は、pullしてもないと言われつづけました。10分程度したら、pullできるようになりました。
データサイエンティストの気づき!「勉強だけして仕事に役立てない人。大嫌い!!」『それ自分かも?』ってなった!!!
https://qiita.com/kaizen_nagoya/items/d85830d58d8dd7f71d07
一覧
物理記事 上位100
https://qiita.com/kaizen_nagoya/items/66e90fe31fbe3facc6ff
量子(0) 計算機, 量子力学
https://qiita.com/kaizen_nagoya/items/1cd954cb0eed92879fd4
数学関連記事100
https://qiita.com/kaizen_nagoya/items/d8dadb49a6397e854c6d
言語・文学記事 100
https://qiita.com/kaizen_nagoya/items/42d58d5ef7fb53c407d6
医工連携関連記事一覧
https://qiita.com/kaizen_nagoya/items/6ab51c12ba51bc260a82
自動車 記事 100
https://qiita.com/kaizen_nagoya/items/f7f0b9ab36569ad409c5
通信記事100
https://qiita.com/kaizen_nagoya/items/1d67de5e1cd207b05ef7
日本語(0)一欄
https://qiita.com/kaizen_nagoya/items/7498dcfa3a9ba7fd1e68
英語(0) 一覧
https://qiita.com/kaizen_nagoya/items/680e3f5cbf9430486c7d
転職(0)一覧
https://qiita.com/kaizen_nagoya/items/f77520d378d33451d6fe
仮説(0)一覧(目標100現在40)
https://qiita.com/kaizen_nagoya/items/f000506fe1837b3590df
Qiita(0)Qiita関連記事一覧(自分)
https://qiita.com/kaizen_nagoya/items/58db5fbf036b28e9dfa6
鉄道(0)鉄道のシステム考察はてっちゃんがてつだってくれる
https://qiita.com/kaizen_nagoya/items/26bda595f341a27901a0
安全(0)安全工学シンポジウムに向けて: 21
https://qiita.com/kaizen_nagoya/items/c5d78f3def8195cb2409
一覧の一覧( The directory of directories of mine.) Qiita(100)
https://qiita.com/kaizen_nagoya/items/7eb0e006543886138f39
Ethernet 記事一覧 Ethernet(0)
https://qiita.com/kaizen_nagoya/items/88d35e99f74aefc98794
Wireshark 一覧 wireshark(0)、Ethernet(48)
https://qiita.com/kaizen_nagoya/items/fbed841f61875c4731d0
線網(Wi-Fi)空中線(antenna)(0) 記事一覧(118/300目標)
https://qiita.com/kaizen_nagoya/items/5e5464ac2b24bd4cd001
OSEK OS設計の基礎 OSEK(100)
https://qiita.com/kaizen_nagoya/items/7528a22a14242d2d58a3
Error一覧 error(0)
https://qiita.com/kaizen_nagoya/items/48b6cbc8d68eae2c42b8
++ Support(0)
https://qiita.com/kaizen_nagoya/items/8720d26f762369a80514
Coding(0) Rules, C, Secure, MISRA and so on
https://qiita.com/kaizen_nagoya/items/400725644a8a0e90fbb0
プログラマによる、プログラマのための、統計(0)と確率のプログラミングとその後
https://qiita.com/kaizen_nagoya/items/6e9897eb641268766909
なぜdockerで機械学習するか 書籍・ソース一覧作成中 (目標100)
https://qiita.com/kaizen_nagoya/items/ddd12477544bf5ba85e2
言語処理100本ノックをdockerで。python覚えるのに最適。:10+12
https://qiita.com/kaizen_nagoya/items/7e7eb7c543e0c18438c4
プログラムちょい替え(0)一覧:4件
https://qiita.com/kaizen_nagoya/items/296d87ef4bfd516bc394
官公庁・学校・公的団体(NPOを含む)システムの課題、官(0)
https://qiita.com/kaizen_nagoya/items/04ee6eaf7ec13d3af4c3
「はじめての」シリーズ ベクタージャパン
https://qiita.com/kaizen_nagoya/items/2e41634f6e21a3cf74eb
AUTOSAR(0)Qiita記事一覧, OSEK(75)
https://qiita.com/kaizen_nagoya/items/89c07961b59a8754c869
プログラマが知っていると良い「公序良俗」
https://qiita.com/kaizen_nagoya/items/9fe7c0dfac2fbd77a945
LaTeX(0) 一覧
https://qiita.com/kaizen_nagoya/items/e3f7dafacab58c499792
自動制御、制御工学一覧(0)
https://qiita.com/kaizen_nagoya/items/7767a4e19a6ae1479e6b
Rust(0) 一覧
https://qiita.com/kaizen_nagoya/items/5e8bb080ba6ca0281927
小川清最終講義、最終講義(再)計画, Ethernet(100) 英語(100) 安全(100)
https://qiita.com/kaizen_nagoya/items/e2df642e3951e35e6a53
<この記事は個人の過去の経験に基づく個人の感想です。現在所属する組織、業務とは関係がありません。>
This article is an individual impression based on the individual's experience. It has nothing to do with the organization or business to which I currently belong.
文書履歴(document history)
ver. 0.10 初稿 20180922
ver. 0.11 方針追記 20180923
ver. 0.12 ブラウザの表示方法追記 20180924朝
ver. 0.13 Windowsでの作業状況追記 20180924夕方
ver. 0.14 お詫び追記 20180924夜
ver. 0.15 condaを利用した理由追記 20180924深夜
ver. 0.16 keras_MINST_V3.py keras_MINST_V4.py 追記 20180925 零時
ver. 0.17 空白行追加訂正、docker hub、みだし数字追記 20180925 朝
ver. 0.18 利用する方を想定し文章加筆 20180925 午前
ver. 0.19 Docker for windows URL追記、空白行追加訂正、日付訂正 20180925 昼
ver. 0.20 第二章 server.pyの「from gevent.wsgi import WSGIServer」をgevent.pywsgiに変更 20180925 夕
ver. 0.21 ps, kill 記述場所変更 20180925 夜
ver. 0.22 第二章用docker登録。-p 8000追記。20180925 深夜
ver. 0.23 誤記訂正 20180926
ver. 0.24 表題変更、参考資料追記 20180927 朝
ver. 0.25 表題変更、参考資料追記 20181021
ver. 0.26 はてなブックマーク追記 20190120
ver. 0.27 表記加筆 20200215
ver. 0.28 表題順番入れ替え 20220918
ver. 0.29 ありがとう追記 20230423
最後までおよみいただきありがとうございました。
いいね 💚、フォローをお願いします。
Thank you very much for reading to the last sentence.
Please press the like icon 💚 and follow me for your happy life.