LoginSignup
3
5
新規開発や新技術の検証、導入にまつわる記事を投稿しよう!

「詳解 ディープラーニング TensorFlow・Kerasによる時系列データ処理」巣籠悠輔 著。dockerで機械学習(7) with anaconda(7)

Last updated at Posted at 2018-10-06

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

「詳解 ディープラーニング TensorFlow・Kerasによる時系列データ処理」巣籠悠輔 著
72995_ext_06_0-2.jpg

<この項は書きかけです。順次追記します。>

docker

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

docker起動

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

docker pull and run

$ docker pull kaizenjapan/anaconda-sugomori

$ docker run -it -p 8888:8888 kaizenjapan/anaconda-sugomori /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

第2章

python ファイル名.py
で実行できる。ただし、08_for.py, 09_for_break.py は実行後の改行がなかった。

(base) root@420f9be6a3a2:/deeplearning-tensorflow-keras# ls
2  3  4  5  6  README.md  appendix  mldata

(base) root@420f9be6a3a2:/deeplearning-tensorflow-keras/2# cd 2

(base) root@420f9be6a3a2:/deeplearning-tensorflow-keras/2# ls
00_hello_world.py  04_if_elif_else.py  08_for.py		 12_function_print_x2.py
01_if.py	   05_while.py	       09_for_break.py		 13_function_return_x2.py
02_if_else.py	   06_while_break.py   10_for_dict.py		 14_function_return_ax2_1.py
03_if_elif.py	   07_while_else.py    11_for_dict_key_value.py  15_function_return_ax2_2.py

(base) root@420f9be6a3a2:/deeplearning-tensorflow-keras/2# python 08_for.py 
0 1 2 3 4 5 (base) root@420f9be6a3a2:/deeplearning-tensorflow-keras/2#

第3章

(base) root@420f9be6a3a2:/deeplearning-tensorflow-keras/3/tensorflow# cd ../3

(base) root@420f9be6a3a2:/deeplearning-tensorflow-keras/3# ls
00_simple_perceptron.py  keras	tensorflow

(base) root@420f9be6a3a2:/deeplearning-tensorflow-keras/3# cd tensorflow

(base) root@420f9be6a3a2:/deeplearning-tensorflow-keras/3/tensorflow# ls
01_logistic_regression_or_tensorflow.py		  03_mlp_xor_tensorflow.py
02_multi_class_logistic_regression_tensorflow.py  04_toy_problem_tensorflow.py


(base) root@420f9be6a3a2:/deeplearning-tensorflow-keras/3/tensorflow# python 03_mlp_xor_tensorflow.py 
2018-10-06 01:51:47.652943: 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-10-06 01:51:47.655535: 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.

CPUとの関係で警告が出る。

第4章

(base) root@420f9be6a3a2:/deeplearning-tensorflow-keras/3# cd ../4
(base) root@420f9be6a3a2:/deeplearning-tensorflow-keras/4# ls
keras  tensorflow
(base) root@420f9be6a3a2:/deeplearning-tensorflow-keras/4# cd keras
(base) root@420f9be6a3a2:/deeplearning-tensorflow-keras/4/keras# ls
00_mnist_sigmoid_keras.py  05_mnist_dropout_keras.py   10_mnist_adadelta_keras.py
01_mnist_tanh_keras.py	   06_mnist_plot_keras.py      11_mnist_rmsprop_keras.py
02_mnist_relu_keras.py	   07_mnist_momentum_keras.py  12_mnist_adam_keras.py
03_mnist_lrelu_keras.py    08_mnist_nesterov_keras.py  13_mnist_early_stopping_keras.py
04_mnist_prelu_keras.py    09_mnist_adagrad_keras.py   14_mnist_batch_normalization_keras.py

(base) root@420f9be6a3a2:/deeplearning-tensorflow-keras/4/keras# python 00_mnist_sigmoid_keras.py 
Using TensorFlow backend.
/opt/conda/lib/python3.6/site-packages/sklearn/utils/deprecation.py:77: DeprecationWarning: Function fetch_mldata is deprecated; fetch_mldata was deprecated in version 0.20 and will be removed in version 0.22
  warnings.warn(msg, category=DeprecationWarning)
/opt/conda/lib/python3.6/site-packages/sklearn/utils/deprecation.py:77: DeprecationWarning: Function mldata_filename is deprecated; mldata_filename was deprecated in version 0.20 and will be removed in version 0.22
  warnings.warn(msg, category=DeprecationWarning)
/opt/conda/lib/python3.6/site-packages/sklearn/model_selection/_split.py:2069: FutureWarning: From version 0.21, test_size will always complement train_size unless both are specified.
  FutureWarning)
Epoch 1/100
2018-10-06 01:58:21.479898: 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-10-06 01:58:21.482436: 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.
8000/8000 [==============================] - 1s 71us/step - loss: 1.9617 - acc: 0.3528
Epoch 2/100
8000/8000 [==============================] - 0s 34us/step - loss: 1.2988 - acc: 0.6805
Epoch 3/100
8000/8000 [==============================] - 0s 30us/step - loss: 1.0163 - acc: 0.7676
Epoch 4/100
8000/8000 [==============================] - 0s 30us/step - loss: 0.8508 - acc: 0.8153
Epoch 5/100
8000/8000 [==============================] - 0s 29us/step - loss: 0.7466 - acc: 0.8385
Epoch 6/100
8000/8000 [==============================] - 0s 28us/step - loss: 0.6705 - acc: 0.8541
Epoch 7/100
8000/8000 [==============================] - 0s 27us/step - loss: 0.6115 - acc: 0.8635
Epoch 8/100
8000/8000 [==============================] - 0s 28us/step - loss: 0.5655 - acc: 0.8745

(中略)

8000/8000 [==============================] - 0s 26us/step - loss: 0.1508 - acc: 0.9661
Epoch 100/100
8000/8000 [==============================] - 0s 27us/step - loss: 0.1502 - acc: 0.9665
2000/2000 [==============================] - 0s 58us/step
[0.36202839875221254, 0.8855]

版の不整合の警告が出る。

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-sugomori
sha256:4c4291a744d335cba469307e8c71e174eb0d25afed02055059bd9654926c80f2
$ docker push kaizenjapan/anaconda-sugomori
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)

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

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

<この記事は個人の過去の経験に基づく個人の感想です。現在所属する組織、業務とは関係がありません。>

6. 文書履歴(document history)

ver. 0.10 初稿 20180928
ver. 0.11 jupyternotebook起動 20181006 零時
ver. 0.12 誤植訂正 20181006 朝
ver. 0.13 ありがとう追記 20230413

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

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

Thank you very much for reading to the last sentence.

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

3
5
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
3
5