17
26

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

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
26
0

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
26

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?