VOOZH about

URL: https://qiita.com/kaizen_nagoya/items/140428dfce7e3234ceb7

⇱ dockerで機械学習(6) with anaconda(6)「 scikit-learnとTensorFlowによる実践機械学習」Aurélien Géron 著 #Python - Qiita


👁 Image
17

Go to list of users who liked

26

Share on X(Twitter)

Share on Facebook

Add to Hatena Bookmark

More than 1 year has passed since last update.

@kaizen_nagoya(Dr. Kiyoshi Ogawa)

dockerで機械学習(6) with anaconda(6)「 scikit-learnとTensorFlowによる実践機械学習」Aurélien Géron 著

17
Last updated at Posted at 2018-10-05

1.すぐにプログラムを動かしたい方へ(as soon as you want)

scikit-learnとTensorFlowによる実践機械学習」Aurélien Géron 著
👁 picture_large978-4-87311-834-5.jpeg

https://www.oreilly.co.jp/books/9784873118345/

docker

dockerは複数人で同じ設定で作業、実験、実習ができるとても便利な道具です。
それまで利用していた環境とは全く別に作ります。
それまでどのような設定をしていても、dockerが起動し、ネットがつながれば大丈夫です。ここでは、本で紹介しているdockerの資料に直接基づかず、すぐに利用できる環境を提供し、またご自身で新たに導入したソフトを含めて、保存しておく方法を紹介します。

docker起動

dockerを導入し、Windows, Macではdockerを起動しておいてください。
Windowsでは、BiosでIntel Virtualizationをenableにしないとdockerが起動しない場合があります。
また、セキュリティの警告などが出ることがあります。
システム管理者での作業が必要になります。

M.S. Windowsでdockerを
https://qiita.com/kaizen_nagoya/items/db25c0493170cb8cbcf6

docker pull and run

$ docker pull kaizenjapan/anaconda-handson

$ docker run -it -p 8888:8888 kaizenjapan/anaconda-handson /bin/bash

dockerの中と、dockerを起動したOSのシェルとが表示が似ている場合には、どちらで操作しているか間違えることがあります。dockerの入力促進記号(comman prompt)は、docker idの数字が何桁かついています。

第1章

以下のshell sessionでは

(base) root@5d7f67ae9b0a:#

は入力促進記号(comman prompt)です。実際には数字の部分が違うかもしれません。この行の#の右側を入力してください。
それ以外の行は出力です。出力にエラー、違いがあれば、コメント欄などでご連絡くださると幸いです。
それぞれの章のフォルダに移動します。

docker
(base) root@5d7f67ae9b0a:#ls
bin boot dev	etc handson-ml home lib lib64 media mnt opt proc root	run sbin srv	sys tmp usr var

(base) root@5d7f67ae9b0a:/#cd handson-ml/
(base) root@5d7f67ae9b0a:/handson-ml#ls
01_the_machine_learning_landscape.ipynb		 book_equations.ipynb
02_end_to_end_machine_learning_project.ipynb	 datasets
03_classification.ipynb				 docker
04_training_linear_models.ipynb			 extra_autodiff.ipynb
05_support_vector_machines.ipynb		 extra_capsnets-cn.ipynb
06_decision_trees.ipynb				 extra_capsnets.ipynb
07_ensemble_learning_and_random_forests.ipynb	 extra_gradient_descent_comparison.ipynb
08_dimensionality_reduction.ipynb		 extra_tensorflow_reproducibility.ipynb
09_up_and_running_with_tensorflow.ipynb		 future_encoders.py
10_introduction_to_artificial_neural_networks.ipynb images
11_deep_learning.ipynb				 index.ipynb
12_distributed_tensorflow.ipynb			 math_linear_algebra.ipynb
13_convolutional_neural_networks.ipynb		 requirements.txt
14_recurrent_neural_networks.ipynb		 tensorflow_graph_in_jupyter.py
15_autoencoders.ipynb				 tools_matplotlib.ipynb
16_reinforcement_learning.ipynb			 tools_numpy.ipynb
LICENSE						 tools_pandas.ipynb
README.md

(base) root@5d7f67ae9b0a:/handson-ml#jupyter 01_the_machine_learning_landscape.ipynb 
(base) root@5d7f67ae9b0a:/handson-ml#jupyter notebook --ip=0.0.0.0 --allow-root
[I 14:51:39.253 NotebookApp] Writing notebook server cookie secret to /root/.local/share/jupyter/runtime/notebook_cookie_secret
[I 14:51:39.671 NotebookApp] JupyterLab extension loaded from /opt/conda/lib/python3.6/site-packages/jupyterlab
[I 14:51:39.671 NotebookApp] JupyterLab application directory is /opt/conda/share/jupyter/lab
[I 14:51:39.675 NotebookApp] Serving notebooks from local directory: /handson-ml
[I 14:51:39.676 NotebookApp] The Jupyter Notebook is running at:
[I 14:51:39.676 NotebookApp] http://(5d7f67ae9b0a or 127.0.0.1):8888/?token=7a5331fc8bad20cea75fc965e0734876860496be34ddf2c9
[I 14:51:39.676 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[W 14:51:39.677 NotebookApp] No web browser found: could not locate runnable browser.
[C 14:51:39.677 NotebookApp] 
 
 Copy/paste this URL into your browser when you connect for the first time,
 to login with a token:
 http://(5d7f67ae9b0a or 127.0.0.1):8888/?token=7a5331fc8bad20cea75fc965e0734876860496be34ddf2c9
[I 14:52:06.930 NotebookApp] 302 GET / (172.17.0.1) 1.00ms
[W 14:52:06.979 NotebookApp] Clearing invalid/expired login cookie username-localhost-8888
[W 14:52:06.983 NotebookApp] Clearing invalid/expired login cookie username-localhost-8888
[I 14:52:06.985 NotebookApp] 302 GET /tree? (172.17.0.1) 6.74ms
[I 14:54:37.247 NotebookApp] 302 POST /login?next=%2Ftree%3F (172.17.0.1) 1.76ms
[I 14:54:44.746 NotebookApp] Writing notebook-signing key to /root/.local/share/jupyter/notebook_secret
[W 14:54:44.752 NotebookApp] Notebook 01_the_machine_learning_landscape.ipynb is not trusted
[I 14:54:46.482 NotebookApp] Kernel started: dcc7efd8-67a2-438f-bedf-43714520cfac
[I 14:54:47.204 NotebookApp] Adapting to protocol v5.1 for kernel dcc7efd8-67a2-438f-bedf-43714520cfac
[I 14:56:46.466 NotebookApp] Saving file at /01_the_machine_learning_landscape.ipynb
[W 14:56:46.468 NotebookApp] Notebook 01_the_machine_learning_landscape.ipynb is not trusted

dockerを起動したOSのブラウザで localhost:8888 を表示してください。

👁 jupy1.png

tokenの欄に、7a5331fc8bad20cea75fc965e0734876860496be34ddf2c9
をコピペ

👁 jupy3.png

01_the_machine_learning_landscape.ipynb
選択

👁 jupy2.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-getのよいところは、debianというカーネルの開発者が大勢集まっており、基本機能の整合性を厳密に取っているところにある。
通信規約の改良にあたって、Linuxのカーネルに手を入れる必要があったときに、ソースをaptで導入し、patch適用後コンパイルしてもエラーなくコンパイルできて以来、linuxといえばaptが利用できるDebian系を愛用している。
Raspberry PIで有名なRaspbianもDebian系で、aptが利用できる。
そのため、dockerで作業した状況をRaspbianで再現することはとても容易である。

(base) root@0da2c87a513f:/# apt update
Ign:1 http://deb.debian.org/debian stretch InRelease
Get:2 http://security.debian.org/debian-security stretch/updates InRelease [94.3 kB]
Get:3 http://deb.debian.org/debian stretch-updates InRelease [91.0 kB]
Get:4 http://deb.debian.org/debian stretch Release [118 kB] 
Get:5 http://security.debian.org/debian-security stretch/updates/main amd64 Packages [549 kB]
Get:6 http://deb.debian.org/debian stretch-updates/main amd64 Packages.diff/Index [5164 B]
Get:7 http://deb.debian.org/debian stretch Release.gpg [2434 B]
Get:8 http://deb.debian.org/debian stretch-updates/main amd64 Packages 2018-07-20-2027.50.pdiff [1134 B]
Get:9 http://deb.debian.org/debian stretch-updates/main amd64 Packages 2018-07-31-2010.17.pdiff [1388 B]
Get:9 http://deb.debian.org/debian stretch-updates/main amd64 Packages 2018-07-31-2010.17.pdiff [1388 B]
Get:10 http://deb.debian.org/debian stretch/main amd64 Packages [9500 kB]
Fetched 10.4 MB in 27s (380 kB/s) 
Reading package lists... Done

git

本にあるURLからgitで取得する。

(base) root@b789c278e622:/# git clone https://github.com/oreilly-japan/ml-at-work.git

conda install

pythonには、pipというpythonのライブラリ等を導入する仕組みがある。
今回は、condaというanaconda専用のライブラリ導入の仕組みを利用してみる。

conda install tensorflow

(base) root@5a5136f16eab:/handson-ml# conda install tensorflow
Solving environment: done

## Package Plan ##

 environment location: /opt/conda

 added / updated specs: 
 - tensorflow


The following packages will be downloaded:

 package | build
 ---------------------------|-----------------
 jdcal-1.4 | py36_0 11 KB
 multipledispatch-0.6.0 | py36_0 21 KB


(中略)

 patsy-0.5.0 | py36_0 322 KB
 sphinxcontrib-websupport-1.1.0| py36_1 36 KB
 astroid-2.0.4 | py36_0 247 KB
 ------------------------------------------------------------
 Total: 339.6 MB

The following NEW packages will be INSTALLED:

 _tflow_select: 2.3.0-mkl 
 absl-py: 0.5.0-py36_0 
 astor: 0.7.1-py36_0 
 gast: 0.2.0-py36_0 
 grpcio: 1.12.1-py36hdbcaa40_0 
 keras-applications: 1.0.6-py36_0 
 keras-preprocessing: 1.0.5-py36_0 
 libprotobuf: 3.6.0-hdbcaa40_0 
 markdown: 2.6.11-py36_0 
 protobuf: 3.6.0-py36hf484d3e_0 
 tensorboard: 1.11.0-py36hf484d3e_0 
 tensorflow: 1.11.0-mkl_py36ha6f0bda_0
 tensorflow-base: 1.11.0-mkl_py36h3c3e929_0
 termcolor: 1.1.0-py36_1 
 typed-ast: 1.1.0-py36h14c3975_0 

The following packages will be REMOVED:

 anaconda: 5.3.0-py37_0 

The following packages will be UPDATED:

 _ipyw_jlab_nb_ext_conf: 0.1.0-py37_0 --> 0.1.0-py36_0 
 alabaster: 0.7.11-py37_0 --> 0.7.11-py36_0 
 anaconda-client: 1.7.2-py37_0 --> 1.7.2-py36_0 
 anaconda-navigator: 1.9.2-py37_0 --> 1.9.2-py36_0 
 anaconda-project: 0.8.2-py37_0 --> 0.8.2-py36_0 
 appdirs: 1.4.3-py37h28b3542_0 --> 1.4.3-py36h28b3542_0 
 asn1crypto: 0.24.0-py37_0 --> 0.24.0-py36_0 
 astroid: 2.0.4-py37_0 --> 2.0.4-py36_0 
 astropy: 3.0.4-py37h14c3975_0 --> 3.0.4-py36h14c3975_0 
 atomicwrites: 1.2.1-py37_0 --> 1.2.1-py36_0 
 attrs: 18.2.0-py37h28b3542_0 --> 18.2.0-py36h28b3542_0 
 automat: 0.7.0-py37_0 --> 0.7.0-py36_0 
 babel: 2.6.0-py37_0 --> 2.6.0-py36_0 
 backcall: 0.1.0-py37_0 --> 0.1.0-py36_0 
 backports: 1.0-py37_1 --> 1.0-py36_1 
 backports.shutil_get_terminal_size: 1.0.0-py37_2 --> 1.0.0-py36_2 
 beautifulsoup4: 4.6.3-py37_0 --> 4.6.3-py36_0 
 bitarray: 0.8.3-py37h14c3975_0 --> 0.8.3-py36h14c3975_0 
 bkcharts: 0.2-py37_0 --> 0.2-py36_0 
 blaze: 0.11.3-py37_0 --> 0.11.3-py36_0 
 bleach: 2.1.4-py37_0 --> 2.1.4-py36_0 
 bokeh: 0.13.0-py37_0 --> 0.13.0-py36_0 
 boto: 2.49.0-py37_0 --> 2.49.0-py36_0 
 bottleneck: 1.2.1-py37h035aef0_1 --> 1.2.1-py36h035aef0_1 
 certifi: 2018.8.24-py37_1 --> 2018.8.24-py36_1 
 cffi: 1.11.5-py37he75722e_1 --> 1.11.5-py36he75722e_1 
 chardet: 3.0.4-py37_1 --> 3.0.4-py36_1 
 click: 6.7-py37_0 --> 7.0-py36_0 
 cloudpickle: 0.5.5-py37_0 --> 0.5.6-py36_0 
 clyent: 1.2.2-py37_1 --> 1.2.2-py36_1 
 colorama: 0.3.9-py37_0 --> 0.3.9-py36_0 
 conda: 4.5.11-py37_0 --> 4.5.11-py36_0 
 conda-build: 3.15.1-py37_0 --> 3.15.1-py36_0 
 constantly: 15.1.0-py37h28b3542_0 --> 15.1.0-py36h28b3542_0 
 contextlib2: 0.5.5-py37_0 --> 0.5.5-py36_0 
 cryptography: 2.3.1-py37hc365091_0 --> 2.3.1-py36hc365091_0 
 cycler: 0.10.0-py37_0 --> 0.10.0-py36_0 
 cython: 0.28.5-py37hf484d3e_0 --> 0.28.5-py36hf484d3e_0 
 cytoolz: 0.9.0.1-py37h14c3975_1 --> 0.9.0.1-py36h14c3975_1 
 dask: 0.19.1-py37_0 --> 0.19.2-py36_0 
 dask-core: 0.19.1-py37_0 --> 0.19.2-py36_0 
 datashape: 0.5.4-py37_1 --> 0.5.4-py36_1 
 decorator: 4.3.0-py37_0 --> 4.3.0-py36_0 
 defusedxml: 0.5.0-py37_1 --> 0.5.0-py36_1 
 distributed: 1.23.1-py37_0 --> 1.23.2-py36_0 
 docutils: 0.14-py37_0 --> 0.14-py36_0 
 entrypoints: 0.2.3-py37_2 --> 0.2.3-py36_2 
 et_xmlfile: 1.0.1-py37_0 --> 1.0.1-py36_0 
 fastcache: 1.0.2-py37h14c3975_2 --> 1.0.2-py36h14c3975_2 
 filelock: 3.0.8-py37_0 --> 3.0.8-py36_0 
 flask: 1.0.2-py37_1 --> 1.0.2-py36_1 
 flask-cors: 3.0.6-py37_0 --> 3.0.6-py36_0 
 gevent: 1.3.6-py37h7b6447c_0 --> 1.3.6-py36h7b6447c_0 
 glob2: 0.6-py37_0 --> 0.6-py36_1 
 gmpy2: 2.0.8-py37h10f8cd9_2 --> 2.0.8-py36h10f8cd9_2 
 greenlet: 0.4.15-py37h7b6447c_0 --> 0.4.15-py36h7b6447c_0 
 h5py: 2.8.0-py37h989c5e5_3 --> 2.8.0-py36h989c5e5_3 
 heapdict: 1.0.0-py37_2 --> 1.0.0-py36_2 
 html5lib: 1.0.1-py37_0 --> 1.0.1-py36_0 
 hyperlink: 18.0.0-py37_0 --> 18.0.0-py36_0 
 idna: 2.7-py37_0 --> 2.7-py36_0 
 imageio: 2.4.1-py37_0 --> 2.4.1-py36_0 
 imagesize: 1.1.0-py37_0 --> 1.1.0-py36_0 
 incremental: 17.5.0-py37_0 --> 17.5.0-py36_0 
 ipykernel: 4.9.0-py37_1 --> 5.0.0-py36h39e3cac_0 
 ipython: 6.5.0-py37_0 --> 7.0.1-py36h39e3cac_0 
 ipython_genutils: 0.2.0-py37_0 --> 0.2.0-py36_0 
 ipywidgets: 7.4.1-py37_0 --> 7.4.2-py36_0 
 isort: 4.3.4-py37_0 --> 4.3.4-py36_0 
 itsdangerous: 0.24-py37_1 --> 0.24-py36_1 
 jdcal: 1.4-py37_0 --> 1.4-py36_0 
 jedi: 0.12.1-py37_0 --> 0.12.1-py36_0 
 jeepney: 0.3.1-py37_0 --> 0.4-py36_0 
 jinja2: 2.10-py37_0 --> 2.10-py36_0 
 jsonschema: 2.6.0-py37_0 --> 2.6.0-py36_0 
 jupyter: 1.0.0-py37_7 --> 1.0.0-py36_7 
 jupyter_client: 5.2.3-py37_0 --> 5.2.3-py36_0 
 jupyter_console: 5.2.0-py37_1 --> 5.2.0-py36_1 
 jupyter_core: 4.4.0-py37_0 --> 4.4.0-py36_0 
 jupyterlab: 0.34.9-py37_0 --> 0.34.12-py36_0 
 jupyterlab_launcher: 0.13.1-py37_0 --> 0.13.1-py36_0 
 keyring: 13.2.1-py37_0 --> 13.2.1-py36_0 
 kiwisolver: 1.0.1-py37hf484d3e_0 --> 1.0.1-py36hf484d3e_0 
 lazy-object-proxy: 1.3.1-py37h14c3975_2 --> 1.3.1-py36h14c3975_2 
 llvmlite: 0.24.0-py37hdbcaa40_0 --> 0.25.0-py36hd408876_0 
 locket: 0.2.0-py37_1 --> 0.2.0-py36_1 
 lxml: 4.2.5-py37hefd8a0e_0 --> 4.2.5-py36hefd8a0e_0 
 markupsafe: 1.0-py37h14c3975_1 --> 1.0-py36h14c3975_1 
 matplotlib: 2.2.3-py37hb69df0a_0 --> 3.0.0-py36h5429711_0 
 mccabe: 0.6.1-py37_1 --> 0.6.1-py36_1 
 mistune: 0.8.3-py37h14c3975_1 --> 0.8.3-py36h14c3975_1 
 mkl-service: 1.1.2-py37h90e4bf4_5 --> 1.1.2-py36h90e4bf4_5 
 mkl_fft: 1.0.4-py37h4414c95_1 --> 1.0.6-py36h7dd41cf_0 
 mkl_random: 1.0.1-py37h4414c95_1 --> 1.0.1-py36h4414c95_1 
 more-itertools: 4.3.0-py37_0 --> 4.3.0-py36_0 
 mpmath: 1.0.0-py37_2 --> 1.0.0-py36_2 
 msgpack-python: 0.5.6-py37h6bb024c_1 --> 0.5.6-py36h6bb024c_1 
 multipledispatch: 0.6.0-py37_0 --> 0.6.0-py36_0 
 navigator-updater: 0.2.1-py37_0 --> 0.2.1-py36_0 
 nbconvert: 5.4.0-py37_1 --> 5.4.0-py36_1 
 nbformat: 4.4.0-py37_0 --> 4.4.0-py36_0 
 networkx: 2.1-py37_0 --> 2.2-py36_1 
 nltk: 3.3.0-py37_0 --> 3.3.0-py36_0 
 nose: 1.3.7-py37_2 --> 1.3.7-py36_2 
 notebook: 5.6.0-py37_0 --> 5.7.0-py36_0 
 numba: 0.39.0-py37h04863e7_0 --> 0.40.0-py36h962f231_0 
 numexpr: 2.6.8-py37hd89afb7_0 --> 2.6.8-py36hd89afb7_0 
 numpy: 1.15.1-py37h1d66e8a_0 --> 1.15.2-py36h1d66e8a_1 
 numpy-base: 1.15.1-py37h81de0dd_0 --> 1.15.2-py36h81de0dd_1 
 numpydoc: 0.8.0-py37_0 --> 0.8.0-py36_0 
 odo: 0.5.1-py37_0 --> 0.5.1-py36_0 
 olefile: 0.46-py37_0 --> 0.46-py36_0 
 openpyxl: 2.5.6-py37_0 --> 2.5.8-py36_0 
 packaging: 17.1-py37_0 --> 18.0-py36_0 
 pandas: 0.23.4-py37h04863e7_0 --> 0.23.4-py36h04863e7_0 
 pandocfilters: 1.4.2-py37_1 --> 1.4.2-py36_1 
 parso: 0.3.1-py37_0 --> 0.3.1-py36_0 
 partd: 0.3.8-py37_0 --> 0.3.8-py36_0 
 path.py: 11.1.0-py37_0 --> 11.1.0-py36_0 
 pathlib2: 2.3.2-py37_0 --> 2.3.2-py36_0 
 patsy: 0.5.0-py37_0 --> 0.5.0-py36_0 
 pep8: 1.7.1-py37_0 --> 1.7.1-py36_0 
 pexpect: 4.6.0-py37_0 --> 4.6.0-py36_0 
 pickleshare: 0.7.4-py37_0 --> 0.7.5-py36_0 
 pillow: 5.2.0-py37heded4f4_0 --> 5.3.0-py36h34e0f95_0 
 pip: 10.0.1-py37_0 --> 10.0.1-py36_0 
 pkginfo: 1.4.2-py37_1 --> 1.4.2-py36_1 
 pluggy: 0.7.1-py37h28b3542_0 --> 0.7.1-py36h28b3542_0 
 ply: 3.11-py37_0 --> 3.11-py36_0 
 prometheus_client: 0.3.1-py37h28b3542_0 --> 0.3.1-py36h28b3542_0 
 prompt_toolkit: 1.0.15-py37_0 --> 2.0.5-py36_0 
 psutil: 5.4.7-py37h14c3975_0 --> 5.4.7-py36h14c3975_0 
 ptyprocess: 0.6.0-py37_0 --> 0.6.0-py36_0 
 py: 1.6.0-py37_0 --> 1.6.0-py36_0 
 pyasn1: 0.4.4-py37h28b3542_0 --> 0.4.4-py36h28b3542_0 
 pyasn1-modules: 0.2.2-py37_0 --> 0.2.2-py36_0 
 pycodestyle: 2.4.0-py37_0 --> 2.4.0-py36_0 
 pycosat: 0.6.3-py37h14c3975_0 --> 0.6.3-py36h14c3975_0 
 pycparser: 2.18-py37_1 --> 2.19-py36_0 
 pycrypto: 2.6.1-py37h14c3975_9 --> 2.6.1-py36h14c3975_9 
 pycurl: 7.43.0.2-py37hb7f436b_0 --> 7.43.0.2-py36hb7f436b_0
 pyflakes: 2.0.0-py37_0 --> 2.0.0-py36_0 
 pygments: 2.2.0-py37_0 --> 2.2.0-py36_0 
 pylint: 2.1.1-py37_0 --> 2.1.1-py36_0 
 pyodbc: 4.0.24-py37he6710b0_0 --> 4.0.24-py36he6710b0_0 
 pyopenssl: 18.0.0-py37_0 --> 18.0.0-py36_0 
 pyparsing: 2.2.0-py37_1 --> 2.2.1-py36_0 
 pyqt: 5.9.2-py37h05f1152_2 --> 5.9.2-py36h05f1152_2 
 pysocks: 1.6.8-py37_0 --> 1.6.8-py36_0 
 pytables: 3.4.4-py37ha205bf6_0 --> 3.4.4-py36ha205bf6_0 
 pytest: 3.8.0-py37_0 --> 3.8.1-py36_0 
 pytest-arraydiff: 0.2-py37h39e3cac_0 --> 0.2-py36h39e3cac_0 
 pytest-astropy: 0.4.0-py37_0 --> 0.4.0-py36_0 
 pytest-doctestplus: 0.1.3-py37_0 --> 0.1.3-py36_0 
 pytest-openfiles: 0.3.0-py37_0 --> 0.3.0-py36_0 
 pytest-remotedata: 0.3.0-py37_0 --> 0.3.0-py36_0 
 python-dateutil: 2.7.3-py37_0 --> 2.7.3-py36_0 
 pytz: 2018.5-py37_0 --> 2018.5-py36_0 
 pywavelets: 1.0.0-py37hdd07704_0 --> 1.0.1-py36hdd07704_0 
 pyyaml: 3.13-py37h14c3975_0 --> 3.13-py36h14c3975_0 
 pyzmq: 17.1.2-py37h14c3975_0 --> 17.1.2-py36h14c3975_0 
 qtawesome: 0.4.4-py37_0 --> 0.5.0-py36_0 
 qtconsole: 4.4.1-py37_0 --> 4.4.1-py36_0 
 qtpy: 1.5.0-py37_0 --> 1.5.1-py36_0 
 requests: 2.19.1-py37_0 --> 2.19.1-py36_0 
 rope: 0.11.0-py37_0 --> 0.11.0-py36_0 
 ruamel_yaml: 0.15.46-py37h14c3975_0 --> 0.15.46-py36h14c3975_0 
 scikit-image: 0.14.0-py37hf484d3e_1 --> 0.14.0-py36hf484d3e_1 
 scikit-learn: 0.19.2-py37h4989274_0 --> 0.20.0-py36h4989274_1 
 scipy: 1.1.0-py37hfa4b5c9_1 --> 1.1.0-py36hfa4b5c9_1 
 seaborn: 0.9.0-py37_0 --> 0.9.0-py36_0 
 secretstorage: 3.1.0-py37_0 --> 3.1.0-py36_0 
 send2trash: 1.5.0-py37_0 --> 1.5.0-py36_0 
 service_identity: 17.0.0-py37h28b3542_0 --> 17.0.0-py36h28b3542_0 
 setuptools: 40.2.0-py37_0 --> 40.4.3-py36_0 
 simplegeneric: 0.8.1-py37_2 --> 0.8.1-py36_2 
 singledispatch: 3.4.0.3-py37_0 --> 3.4.0.3-py36_0 
 sip: 4.19.8-py37hf484d3e_0 --> 4.19.8-py36hf484d3e_0 
 six: 1.11.0-py37_1 --> 1.11.0-py36_1 
 snowballstemmer: 1.2.1-py37_0 --> 1.2.1-py36_0 
 sortedcollections: 1.0.1-py37_0 --> 1.0.1-py36_0 
 sortedcontainers: 2.0.5-py37_0 --> 2.0.5-py36_0 
 sphinx: 1.7.9-py37_0 --> 1.8.1-py36_0 
 sphinxcontrib: 1.0-py37_1 --> 1.0-py36_1 
 sphinxcontrib-websupport: 1.1.0-py37_1 --> 1.1.0-py36_1 
 spyder: 3.3.1-py37_1 --> 3.3.1-py36_1 
 spyder-kernels: 0.2.6-py37_0 --> 0.2.6-py36_0 
 sqlalchemy: 1.2.11-py37h7b6447c_0 --> 1.2.12-py36h7b6447c_0 
 statsmodels: 0.9.0-py37h035aef0_0 --> 0.9.0-py36h035aef0_0 
 sympy: 1.2-py37_0 --> 1.3-py36_0 
 tblib: 1.3.2-py37_0 --> 1.3.2-py36_0 
 terminado: 0.8.1-py37_1 --> 0.8.1-py36_1 
 testpath: 0.3.1-py37_0 --> 0.4.1-py36_0 
 toolz: 0.9.0-py37_0 --> 0.9.0-py36_0 
 tornado: 5.1-py37h14c3975_0 --> 5.1.1-py36h7b6447c_0 
 tqdm: 4.26.0-py37h28b3542_0 --> 4.26.0-py36h28b3542_0 
 traitlets: 4.3.2-py37_0 --> 4.3.2-py36_0 
 twisted: 18.7.0-py37h14c3975_1 --> 18.7.0-py36h14c3975_1 
 unicodecsv: 0.14.1-py37_0 --> 0.14.1-py36_0 
 urllib3: 1.23-py37_0 --> 1.23-py36_0 
 wcwidth: 0.1.7-py37_0 --> 0.1.7-py36_0 
 webencodings: 0.5.1-py37_1 --> 0.5.1-py36_1 
 werkzeug: 0.14.1-py37_0 --> 0.14.1-py36_0 
 wheel: 0.31.1-py37_0 --> 0.32.0-py36_0 
 widgetsnbextension: 3.4.1-py37_0 --> 3.4.2-py36_0 
 wrapt: 1.10.11-py37h14c3975_2 --> 1.10.11-py36h14c3975_2 
 xlrd: 1.1.0-py37_1 --> 1.1.0-py36_1 
 xlsxwriter: 1.1.0-py37_0 --> 1.1.1-py36_0 
 xlwt: 1.3.0-py37_0 --> 1.3.0-py36_0 
 zict: 0.1.3-py37_0 --> 0.1.3-py36_0 
 zope: 1.0-py37_1 --> 1.0-py36_1 
 zope.interface: 4.5.0-py37h14c3975_0 --> 4.5.0-py36h14c3975_0 

The following packages will be DOWNGRADED:

 python: 3.7.0-hc3d631a_0 --> 3.6.6-hc3d631a_0 

Proceed ([y]/n)? y


Downloading and Extracting Packages
jdcal-1.4 | 11 KB | ######################################################################## | 100% 
multipledispatch-0.6 | 21 KB | ######################################################################## | 100% 

(中略)

patsy-0.5.0 | 322 KB | ######################################################################## | 100% 
sphinxcontrib-websup | 36 KB | ######################################################################## | 100% 
astroid-2.0.4 | 247 KB | ######################################################################## | 100% 
Preparing transaction: done
Verifying transaction: done
Executing transaction: done

#3. docker hub 登録
ここからは、新たにソフトを導入したdockerを自分のhubに登録する方法です。
ご自身で何かソフトウェアを導入されたら、ぜひhubに登録することをお勧めします。

docker hubへのID登録が必要になります。

続きの作業を誰かに依頼したり、エラーがでてわからなくなったときに、対処方法を問い合わせるのにも役立ちます。
kaizenjapanは小川清のIDです。ご自身のIDで読み替えて、ご登録ください。

docker push

$ docker ps 
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5a5136f16eab continuumio/anaconda3 "/usr/bin/tini -- /b…" 2 hours ago 
peaceful_noice

$ docker commit 5a5136f16eab kaizenjapan/anaconda-handson
sha256:4c4291a744d335cba469307e8c71e174eb0d25afed02055059bd9654926c80f2
$ docker push kaizenjapan/anaconda-handson
The push refers to repository [docker.io/kaizenjapan/anaconda-handson]
40b1bd665ba4: Pushing 46.21MB/2.017GB
513109f92bd0: Mounted from kaizenjapan/anaconda-pythonai 
443496790d0d: Mounted from kaizenjapan/anaconda-pythonai 
64e142099cde: Mounted from kaizenjapan/anaconda-pythonai 
b28ef0b6fef8: Mounted from kaizenja

4. 参考資料(reference)

dockerで機械学習 一覧
https://qiita.com/kaizen_nagoya/items/ddd12477544bf5ba85e2

docker どっかーら、どーやってもエラーばっかり。
https://qiita.com/kaizen_nagoya/items/690d806a4760d9b9e040

dockerでpython
https://hub.docker.com/r/continuumio/anaconda3/~/dockerfile/

ローカル環境をよごさずに Jupyter で python コードが動く環境を手軽につくる方法
https://qiita.com/yaiwase/items/3a58313e028315004a56

Anaconda の JupyterLab を Docker で使う
https://qiita.com/ao_log/items/350a3845d49f4b1d7198

機械学習を半自動化するauto-sklearnの環境構築(Mac&Docker)
https://qiita.com/inoue0426/items/ffd7f4235dcfde88942b

dockerで機械学習 with anaconda 一覧
https://qiita.com/kaizen_nagoya/items/ddd12477544bf5ba85e2

dockerで機械学習 with anaconda(1)「ゼロから作るDeep Learning - Pythonで学ぶディープラーニングの理論と実装」斎藤 康毅 著
https://qiita.com/kaizen_nagoya/items/a7e94ef6dca128d035ab

dockerで機械学習with anaconda(2)「ゼロから作るDeep Learning2自然言語処理編」斎藤 康毅 著
https://qiita.com/kaizen_nagoya/items/3b80dfc76933cea522c6

dockerで機械学習 with anaconda(3)「直感Deep Learning」Antonio Gulli、Sujit Pal 第1章,第2章
https://qiita.com/kaizen_nagoya/items/483ae708c71c88419c32

「名古屋の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

関連資料

' @kazuo_reve 私が効果を確認した「小川メソッド」
https://qiita.com/kazuo_reve/items/a3ea1d9171deeccc04da

' @kazuo_reve 新人の方によく展開している有益な情報
https://qiita.com/kazuo_reve/items/d1a3f0ee48e24bba38f1

' @kazuo_reve Vモデルについて勘違いしていたと思ったこと
https://qiita.com/kazuo_reve/items/46fddb094563bd9b2e1e

自己記事一覧

プログラマが知っていると良い「公序良俗」
https://qiita.com/kaizen_nagoya/items/9fe7c0dfac2fbd77a945

逆も真:社会人が最初に確かめるとよいこと。OSEK(69)、Ethernet(59)
https://qiita.com/kaizen_nagoya/items/39afe4a728a31b903ddc

「何を」よりも「誰を」。10年後のために今見習いたい人たち
https://qiita.com/kaizen_nagoya/items/8045978b16eb49d572b2

Qiitaの記事に3段階または5段階で到達するための方法
https://qiita.com/kaizen_nagoya/items/6e9298296852325adc5e

物理記事 上位100
https://qiita.com/kaizen_nagoya/items/66e90fe31fbe3facc6ff

量子(0) 計算機, 量子力学
https://qiita.com/kaizen_nagoya/items/1cd954cb0eed92879fd4

数学関連記事100
https://qiita.com/kaizen_nagoya/items/d8dadb49a6397e854c6d

統計(0)一覧
https://qiita.com/kaizen_nagoya/items/80d3b221807e53e88aba

図(0) state, sequence and timing. UML and お絵描き
https://qiita.com/kaizen_nagoya/items/60440a882146aeee9e8f

品質一覧
https://qiita.com/kaizen_nagoya/items/2b99b8e9db6d94b2e971

言語・文学記事 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

音楽 一覧(0)
https://qiita.com/kaizen_nagoya/items/b6e5f42bbfe3bbe40f5d

@kazuo_reve 新人の方によく展開している有益な情報」確認一覧
https://qiita.com/kaizen_nagoya/items/b9380888d1e5a042646b

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

coding (101) 一覧を作成し始めた。omake:最近のQiitaで表示しない5つの事象
https://qiita.com/kaizen_nagoya/items/20667f09f19598aedb68

プログラマによる、プログラマのための、統計(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

Python(0)記事をまとめたい。
https://qiita.com/kaizen_nagoya/items/088c57d70ab6904ebb53

官公庁・学校・公的団体(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

100以上いいねをいただいた記事16選
https://qiita.com/kaizen_nagoya/items/f8d958d9084ffbd15d2a

小川清最終講義、最終講義(再)計画, Ethernet(100) 英語(100) 安全(100)
https://qiita.com/kaizen_nagoya/items/e2df642e3951e35e6a53

<この記事は個人の過去の経験に基づく個人の感想です。現在所属する組織、業務とは関係がありません。>
This article is an individual impression based on my individual experience. It has nothing to do with the organization or business to which I currently belong.

文書履歴(document history)

ver. 0.10 初稿 20180928
ver. 0.11 jupyternotebook起動 20181006 零時
ver. 0.12 誤植訂正 20181006 朝
ver. 0.13 参考文献追記 20181006 昼
ver. 0.14 誤植訂正 20181006 夕
ver. 0.15 docker for windows追記 20201226
ver. 0.16 書式変更 202212098
ver. 0.17 ありがとう追記 20230521

最後までおよみいただきありがとうございました。

いいね 💚、フォローをお願いします。

Thank you very much for reading to the last sentence.

Please press the like icon 💚 and follow me for your happy life.

17

Go to list of users who liked

26
0

Go to list of comments

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17

Go to list of users who liked

26