1.すぐにプログラムを動かしたい方へ(as soon as you want)
scikit-learnとTensorFlowによる実践機械学習」Aurélien Géron 著
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)です。実際には数字の部分が違うかもしれません。この行の#の右側を入力してください。
それ以外の行は出力です。出力にエラー、違いがあれば、コメント欄などでご連絡くださると幸いです。
それぞれの章のフォルダに移動します。
(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 を表示してください。
tokenの欄に、7a5331fc8bad20cea75fc965e0734876860496be34ddf2c9
をコピペ
01_the_machine_learning_landscape.ipynb
選択
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.