MachineLearning
docker
Swift

dockerで機械学習(92) with swift(1)「Machine Learning with Swift」By Alexander Sosnovshchenko

1.すぐに利用したい方へ(as soon as)

「Machine Learning with Swift」By Alexander Sosnovshchenko

cat92.gif

http://shop.oreilly.com/product/9781787121515.do

docker

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

docker pull and run

$ docker pull kaizenjapan/scala-karim

$ docker run -it --rm -v `pwd`:/root -p 8888:8888 kaizenjapan/scala-karim /bin/bash

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

dockerの中と、dockerを起動したOSのシェルとが表示が似ている場合には、どちらで捜査しているか間違えることがあります。dockerの入力促進記号(comman prompt)に気をつけてください。

ファイル共有または複写

dockerとdockerを起動したOSでは、ファイル共有をするか、ファイル複写するかして、生成したファイルをブラウザ等表示させてください。参考文献欄にやり方のURLを記載しています。

複写の場合は、dockerを起動したOS側コマンドを実行しました。お使いのdockerの番号で置き換えてください。複写したファイルをブラウザで表示し内容確認しました。

2_decision_trees/

root@2ee25e04a93d:/SwiftMLBook# ls
10_nlp   12_hardware     14_best_practices  2_decision_trees  4_kmeans         6_linear_regression  8_nn   LICENSE    pages
11_libs  13_compression  1_intro            3_knn             5_rule_learning  7_logistic           9_cnn  README.md
root@2ee25e04a93d:/SwiftMLBook# cd 2_decision_trees/
root@2ee25e04a93d:/SwiftMLBook/2_decision_trees# ls
README.md  src  supplementary
root@2ee25e04a93d:/SwiftMLBook/2_decision_trees# cd src
root@2ee25e04a93d:/SwiftMLBook/2_decision_trees/src# ls
DecisionTreeDemo  ML_Intro.ipynb  extraterrestrials.csv  supplementary
root@2ee25e04a93d:/SwiftMLBook/2_decision_trees/src# cd DecisionTreeDemo/
root@2ee25e04a93d:/SwiftMLBook/2_decision_trees/src/DecisionTreeDemo# ls
DecisionTreeDemo  DecisionTreeDemo.xcodeproj
root@2ee25e04a93d:/SwiftMLBook/2_decision_trees/src/DecisionTreeDemo# ls -al
total 16
drwxr-xr-x 4 root root 4096 Oct 21 20:30 .
drwxr-xr-x 4 root root 4096 Oct 21 20:30 ..
drwxr-xr-x 4 root root 4096 Oct 21 20:30 DecisionTreeDemo
drwxr-xr-x 3 root root 4096 Oct 21 20:30 DecisionTreeDemo.xcodeproj
root@2ee25e04a93d:/SwiftMLBook/2_decision_trees/src/DecisionTreeDemo# cd DecisionTreeDemo
root@2ee25e04a93d:/SwiftMLBook/2_decision_trees/src/DecisionTreeDemo/DecisionTreeDemo# ls
AccuracyMetrics.swift  Base.lproj          DecisionTree.mlmodel  GKDecisionTreeWrapper.swift  RandomForest.mlmodel  data_test.csv
AppDelegate.swift      DataProvider.swift  FeaturesLabels.swift  Info.plist                   StreamReader.swift    extraterrestrials.csv
Assets.xcassets        DataSplitter.swift  Flow.swift            NumericExtensions.swift      ViewController.swift
root@2ee25e04a93d:/SwiftMLBook/2_decision_trees/src/DecisionTreeDemo/DecisionTreeDemo# ls
AccuracyMetrics.swift  Base.lproj          DecisionTree.mlmodel  GKDecisionTreeWrapper.swift  RandomForest.mlmodel  data_test.csv
AppDelegate.swift      DataProvider.swift  FeaturesLabels.swift  Info.plist                   StreamReader.swift    extraterrestrials.csv
Assets.xcassets        DataSplitter.swift  Flow.swift            NumericExtensions.swift      ViewController.swift
root@2ee25e04a93d:/SwiftMLBook/2_decision_trees/src/DecisionTreeDemo/DecisionTreeDemo# swift AccuracyMetrics.swift 
root@2ee25e04a93d:/SwiftMLBook/2_decision_trees/src/DecisionTreeDemo/DecisionTreeDemo# swift AppDelegate.swift 
AppDelegate.swift:2:8: error: no such module 'UIKit'
import UIKit
       ^
root@2ee25e04a93d:/SwiftMLBook/2_decision_trees/src/DecisionTreeDemo/DecisionTreeDemo# swift DataProvider.swift 
DataProvider.swift:3:8: error: no such module 'GameplayKit'
import GameplayKit
       ^
root@2ee25e04a93d:/SwiftMLBook/2_decision_trees/src/DecisionTreeDemo/DecisionTreeDemo# swift DataSplitter.swift 
DataSplitter.swift:3:8: error: no such module 'GameplayKit'
import GameplayKit
       ^
root@2ee25e04a93d:/SwiftMLBook/2_decision_trees/src/DecisionTreeDemo/DecisionTreeDemo# swift FeaturesLabels.swift 
FeaturesLabels.swift:16:57: error: cannot invoke initializer for type 'Int' with an argument list of type '(Bool)'
        return (0..<type(of: self).allValuesCount).map{ Int($0 == rawValue) }
                                                        ^
FeaturesLabels.swift:16:57: note: overloads for 'Int' exist with these partially matching parameter lists: (Float), (Double), (Float80), (Int64), (Word), (NSNumber), (CGFloat)
        return (0..<type(of: self).allValuesCount).map{ Int($0 == rawValue) }
                                                        ^
root@2ee25e04a93d:/SwiftMLBook/2_decision_trees/src/DecisionTreeDemo/DecisionTreeDemo# swift NumericExtensions.swift 
root@2ee25e04a93d:/SwiftMLBook/2_decision_trees/src/DecisionTreeDemo/DecisionTreeDemo# swift StreamReader.swift 
root@2ee25e04a93d:/SwiftMLBook/2_decision_trees/src/DecisionTreeDemo/DecisionTreeDemo# swift ViewController.swift 
ViewController.swift:2:8: error: no such module 'UIKit'
import UIKit
       ^

現状の課題

エラー類

2. dockerを自力で構築する方へ

ここから下は、上記のpullしていただいたdockerをどういう方針で、どういう手順で作ったかを記録します。
上記のdockerを利用する上での参考資料です。本の続きを実行する上では必要ありません。

DockerでScala/sbt環境をお手軽に使う
https://qiita.com/yotsak83/items/43cee726d44536208358

ひとまず上記の手順を踏みます。

dockerfileを作る方法ではありません。ごめんなさい。

docker

ubuntu, debianなどのLinuxを、linux, windows, mac osから共通に利用できる仕組み。
利用するOSの設定を変更せずに利用できるのがよい。
同じ仕様で、大量の人が利用することができる。
ソフトウェアの開発元が公式に対応しているものと、利用者が便利に仕立てたものの両方が利用可能である。今回は、公式に配布しているものを、自分で仕立てて、他の人にも利用できるようにする。

ubuntu, debianなどのOSの公式配布,gcc, anacondaなどの言語の公式配布などがある。

これらを利用し、docker-hubに登録することにより、公式配布の質の確認と、変更権を含む幅広い情報の共有ができる。dockerが公式配布するものではなく、それぞれのソフト提供者の公式配布という意味。

2018年10月20日現在、scalaの公式dockerが見つからない。

docker pull and run

OgawaKiyoshi-no-MacBook-Pro:~ ogawakiyoshi$ docker pull swiftdocker/swift
Using default tag: latest
latest: Pulling from swiftdocker/swift
50aff78429b1: Pull complete 
f6d82e297bce: Pull complete 
275abb2c8a6f: Pull complete 
9f15a39356d6: Pull complete 
fc0342a94c89: Pull complete 
2b53dcb0eee7: Pull complete 
267fcb0a26f6: Pull complete 
Digest: sha256:0b2ad4a26977a27bedd2cbbae1c8821b3816a7be8b1fb4ad783816be058f8e95
Status: Downloaded newer image for swiftdocker/swift:latest
OgawaKiyoshi-no-MacBook-Pro:~ ogawakiyoshi$ docker run --privileged -i -t --name swiftfun swiftdocker/swift:latest /bin/bash

root@2ee25e04a93d:/# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var


apt-get

root@2ee25e04a93d:/# apt-get update
Get:1 http://archive.ubuntu.com/ubuntu xenial InRelease [247 kB]
Get:2 http://security.ubuntu.com/ubuntu xenial-security InRelease [107 kB]
Get:3 http://security.ubuntu.com/ubuntu xenial-security/universe Sources [97.1 kB]
Get:4 http://archive.ubuntu.com/ubuntu xenial-updates InRelease [109 kB]          
Get:5 http://security.ubuntu.com/ubuntu xenial-security/main amd64 Packages [727 kB]
Get:6 http://archive.ubuntu.com/ubuntu xenial-backports InRelease [107 kB]
Get:7 http://archive.ubuntu.com/ubuntu xenial/universe Sources [9802 kB]         
Get:8 http://security.ubuntu.com/ubuntu xenial-security/restricted amd64 Packages [12.7 kB]
Get:9 http://security.ubuntu.com/ubuntu xenial-security/universe amd64 Packages [497 kB]
Get:10 http://archive.ubuntu.com/ubuntu xenial/main amd64 Packages [1558 kB]                                                             
Get:11 http://archive.ubuntu.com/ubuntu xenial/restricted amd64 Packages [14.1 kB]                                                       
Get:12 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages [9827 kB]                                                         
Get:13 http://security.ubuntu.com/ubuntu xenial-security/multiverse amd64 Packages [3747 B]                                              
Get:14 http://archive.ubuntu.com/ubuntu xenial/multiverse amd64 Packages [176 kB]                                                        
Get:15 http://archive.ubuntu.com/ubuntu xenial-updates/universe Sources [282 kB]                                                         
Get:16 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages [1115 kB]                                                     
Get:17 http://archive.ubuntu.com/ubuntu xenial-updates/restricted amd64 Packages [13.1 kB]                                               
Get:18 http://archive.ubuntu.com/ubuntu xenial-updates/universe amd64 Packages [894 kB]                                                  
Get:19 http://archive.ubuntu.com/ubuntu xenial-updates/multiverse amd64 Packages [18.8 kB]                                               
Get:20 http://archive.ubuntu.com/ubuntu xenial-backports/main amd64 Packages [7965 B]                                                    
Get:21 http://archive.ubuntu.com/ubuntu xenial-backports/universe amd64 Packages [8532 B]                                                
Fetched 25.6 MB in 14s (1829 kB/s)                                                                                                       
Reading package lists... Done
root@2ee25e04a93d:/# apt-get install vim
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  libgpm2 libmpdec2 libpython3.5 libpython3.5-minimal libpython3.5-stdlib vim-common vim-runtime
Suggested packages:
  gpm ctags vim-doc vim-scripts vim-gnome-py2 | vim-gtk-py2 | vim-gtk3-py2 | vim-athena-py2 | vim-nox-py2
The following NEW packages will be installed:
  libgpm2 libmpdec2 libpython3.5 libpython3.5-minimal libpython3.5-stdlib vim vim-common vim-runtime
0 upgraded, 8 newly installed, 0 to remove and 105 not upgraded.
Need to get 10.4 MB of archives.
After this operation, 49.2 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://archive.ubuntu.com/ubuntu xenial/main amd64 libgpm2 amd64 1.20.4-6.1 [16.5 kB]
Get:2 http://archive.ubuntu.com/ubuntu xenial/main amd64 libmpdec2 amd64 2.4.2-1 [82.6 kB]
Get:3 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpython3.5-minimal amd64 3.5.2-2ubuntu0~16.04.4 [523 kB]
Get:4 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpython3.5-stdlib amd64 3.5.2-2ubuntu0~16.04.4 [2132 kB]
Get:5 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 vim-common amd64 2:7.4.1689-3ubuntu1.2 [103 kB]
Get:6 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpython3.5 amd64 3.5.2-2ubuntu0~16.04.4 [1360 kB]
Get:7 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 vim-runtime all 2:7.4.1689-3ubuntu1.2 [5164 kB]
Get:8 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 vim amd64 2:7.4.1689-3ubuntu1.2 [1036 kB]                               
Fetched 10.4 MB in 9s (1157 kB/s)                                                                                                        
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package libgpm2:amd64.
(Reading database ... 21176 files and directories currently installed.)
Preparing to unpack .../libgpm2_1.20.4-6.1_amd64.deb ...
Unpacking libgpm2:amd64 (1.20.4-6.1) ...
Selecting previously unselected package libmpdec2:amd64.
Preparing to unpack .../libmpdec2_2.4.2-1_amd64.deb ...
Unpacking libmpdec2:amd64 (2.4.2-1) ...
Selecting previously unselected package libpython3.5-minimal:amd64.
Preparing to unpack .../libpython3.5-minimal_3.5.2-2ubuntu0~16.04.4_amd64.deb ...
Unpacking libpython3.5-minimal:amd64 (3.5.2-2ubuntu0~16.04.4) ...
Selecting previously unselected package libpython3.5-stdlib:amd64.
Preparing to unpack .../libpython3.5-stdlib_3.5.2-2ubuntu0~16.04.4_amd64.deb ...
Unpacking libpython3.5-stdlib:amd64 (3.5.2-2ubuntu0~16.04.4) ...
Selecting previously unselected package vim-common.
Preparing to unpack .../vim-common_2%3a7.4.1689-3ubuntu1.2_amd64.deb ...
Unpacking vim-common (2:7.4.1689-3ubuntu1.2) ...
Selecting previously unselected package libpython3.5:amd64.
Preparing to unpack .../libpython3.5_3.5.2-2ubuntu0~16.04.4_amd64.deb ...
Unpacking libpython3.5:amd64 (3.5.2-2ubuntu0~16.04.4) ...
Selecting previously unselected package vim-runtime.
Preparing to unpack .../vim-runtime_2%3a7.4.1689-3ubuntu1.2_all.deb ...
Adding 'diversion of /usr/share/vim/vim74/doc/help.txt to /usr/share/vim/vim74/doc/help.txt.vim-tiny by vim-runtime'
Adding 'diversion of /usr/share/vim/vim74/doc/tags to /usr/share/vim/vim74/doc/tags.vim-tiny by vim-runtime'
Unpacking vim-runtime (2:7.4.1689-3ubuntu1.2) ...
Selecting previously unselected package vim.
Preparing to unpack .../vim_2%3a7.4.1689-3ubuntu1.2_amd64.deb ...
Unpacking vim (2:7.4.1689-3ubuntu1.2) ...
Processing triggers for libc-bin (2.23-0ubuntu9) ...
Processing triggers for mime-support (3.59ubuntu1) ...
Setting up libgpm2:amd64 (1.20.4-6.1) ...
Setting up libmpdec2:amd64 (2.4.2-1) ...
Setting up libpython3.5-minimal:amd64 (3.5.2-2ubuntu0~16.04.4) ...
Setting up libpython3.5-stdlib:amd64 (3.5.2-2ubuntu0~16.04.4) ...
Setting up vim-common (2:7.4.1689-3ubuntu1.2) ...
Setting up libpython3.5:amd64 (3.5.2-2ubuntu0~16.04.4) ...
Setting up vim-runtime (2:7.4.1689-3ubuntu1.2) ...
Setting up vim (2:7.4.1689-3ubuntu1.2) ...
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/vim (vim) in auto mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/vimdiff (vimdiff) in auto mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/rvim (rvim) in auto mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/rview (rview) in auto mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/vi (vi) in auto mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/view (view) in auto mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/ex (ex) in auto mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/editor (editor) in auto mode
Processing triggers for libc-bin (2.23-0ubuntu9) ...
root@2ee25e04a93d:/# apt-get install -y apt-utils
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  apt libapt-inst2.0 libapt-pkg5.0
Suggested packages:
  aptitude | synaptic | wajig apt-doc python-apt
The following NEW packages will be installed:
  apt-utils libapt-inst2.0
The following packages will be upgraded:
  apt libapt-pkg5.0
2 upgraded, 2 newly installed, 0 to remove and 103 not upgraded.
Need to get 2000 kB of archives.
After this operation, 1207 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libapt-pkg5.0 amd64 1.2.27 [706 kB]
Get:2 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 apt amd64 1.2.27 [1042 kB]
Get:3 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libapt-inst2.0 amd64 1.2.27 [55.4 kB]
Get:4 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 apt-utils amd64 1.2.27 [196 kB]
Fetched 2000 kB in 3s (551 kB/s)
debconf: delaying package configuration, since apt-utils is not installed
(Reading database ... 23776 files and directories currently installed.)
Preparing to unpack .../libapt-pkg5.0_1.2.27_amd64.deb ...
Unpacking libapt-pkg5.0:amd64 (1.2.27) over (1.2.24) ...
Processing triggers for libc-bin (2.23-0ubuntu9) ...
Setting up libapt-pkg5.0:amd64 (1.2.27) ...
Processing triggers for libc-bin (2.23-0ubuntu9) ...
(Reading database ... 23776 files and directories currently installed.)
Preparing to unpack .../archives/apt_1.2.27_amd64.deb ...
Unpacking apt (1.2.27) over (1.2.24) ...
Processing triggers for libc-bin (2.23-0ubuntu9) ...
Setting up apt (1.2.27) ...
Installing new version of config file /etc/apt/apt.conf.d/01autoremove ...
Processing triggers for libc-bin (2.23-0ubuntu9) ...
Selecting previously unselected package libapt-inst2.0:amd64.
(Reading database ... 23776 files and directories currently installed.)
Preparing to unpack .../libapt-inst2.0_1.2.27_amd64.deb ...
Unpacking libapt-inst2.0:amd64 (1.2.27) ...
Selecting previously unselected package apt-utils.
Preparing to unpack .../apt-utils_1.2.27_amd64.deb ...
Unpacking apt-utils (1.2.27) ...
Processing triggers for libc-bin (2.23-0ubuntu9) ...
Setting up libapt-inst2.0:amd64 (1.2.27) ...
Setting up apt-utils (1.2.27) ...
Processing triggers for libc-bin (2.23-0ubuntu9) ...
root@2ee25e04a93d:/# apt-get install -y procps
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Recommended packages:
  psmisc
The following packages will be upgraded:
  procps
1 upgraded, 0 newly installed, 0 to remove and 102 not upgraded.
Need to get 222 kB of archives.
After this operation, 0 B of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 procps amd64 2:3.3.10-4ubuntu2.4 [222 kB]
Fetched 222 kB in 2s (101 kB/s)  
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 76, <> line 1.)
debconf: falling back to frontend: Readline
(Reading database ... 23862 files and directories currently installed.)
Preparing to unpack .../procps_2%3a3.3.10-4ubuntu2.4_amd64.deb ...
Unpacking procps (2:3.3.10-4ubuntu2.4) over (2:3.3.10-4ubuntu2.3) ...
Processing triggers for systemd (229-4ubuntu21) ...
Setting up procps (2:3.3.10-4ubuntu2.4) ...
update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults
root@2ee25e04a93d:/# apt-get install -y sudo  
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  sudo
0 upgraded, 1 newly installed, 0 to remove and 102 not upgraded.
Need to get 390 kB of archives.
After this operation, 1618 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 sudo amd64 1.8.16-0ubuntu1.5 [390 kB]
Fetched 390 kB in 2s (175 kB/s)
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 76, <> line 1.)
debconf: falling back to frontend: Readline
Selecting previously unselected package sudo.
(Reading database ... 23862 files and directories currently installed.)
Preparing to unpack .../sudo_1.8.16-0ubuntu1.5_amd64.deb ...
Unpacking sudo (1.8.16-0ubuntu1.5) ...
Setting up sudo (1.8.16-0ubuntu1.5) ...

ソース git

root@2ee25e04a93d:/#  git clone https://github.com/alexsosn/SwiftMLBook
Cloning into 'SwiftMLBook'...
remote: Enumerating objects: 512, done.
remote: Total 512 (delta 0), reused 0 (delta 0), pack-reused 512
Receiving objects: 100% (512/512), 99.37 MiB | 582.00 KiB/s, done.
Resolving deltas: 100% (130/130), done.
Checking connectivity... done.
root@2ee25e04a93d:/# ls
SwiftMLBook  bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@2ee25e04a93d:/# cd SwiftMLBook/

docker hubへの登録

$ docker ps
CONTAINER ID        IMAGE                        COMMAND                  CREATED             STATUS              PORTS                                            NAMES
2ee25e04a93d        swiftdocker/swift:latest     "/bin/bash"              15 minutes ago      Up 15 minutes                                                        swiftfun

$ docker commit 2ee25e04a93d   kaizenjapan/swift
sha256:50694f07975d8b8f4f20622ed7e9b240080f6c9ebc8556f79ca6be995ccad9d1

$ docker push kaizenjapan/swift
The push refers to repository [docker.io/kaizenjapan/swift]
4c36ed0a0aae: Pushed 
c070c46b781c: Mounted from swiftdocker/swift 
dd02019985be: Mounted from swiftdocker/swift 
f17fc24fb8d0: Mounted from swiftdocker/swift 
6458f770d435: Mounted from swiftdocker/swift 
5a876f8f1a3d: Mounted from swiftdocker/swift 
d2f8c05d353b: Mounted from swiftdocker/swift 
48e0baf45d4d: Pushed 
latest: digest: sha256:585e97c6205e3a77b959fc3a4c2ee32c57e6ebd2e53605aaf4970054e48a09a9 size: 1996

参考資料(reference)

swift on docker

swiftdocker/docker-swift
https://github.com/swiftdocker/docker-swift

DockerでSwiftが動くUbuntu環境を立ち上げる
https://qiita.com/clouder/items/867ecb5db2077bc91f9e

Server Side SwiftをDockerコンテナ上で動かしてみる
https://qiita.com/Nonchalant/items/a23949f3e525109a58bc

Swift学習 on Docker for Windows
https://qiita.com/kfjt/items/6a49d603aa497c2807a5

Docker+Ubuntu+Swiftをやってみる
https://qiita.com/AcaiBowl/items/bfd2418b9531a2661fa3

Linux 版 Swift を Mac 上で Docker を使って手っ取り早く試す
https://qiita.com/taketin/items/77af9bc29f44166b8270

Dockerでswift repl起動時にerrorになった場合の対処法
https://qiita.com/atsuya046/items/b84d57ac79b688c018dd

機械学習

なぜdockerで機械学習するか 書籍・ソース一覧作成中 (目標100)
https://qiita.com/kaizen_nagoya/items/ddd12477544bf5ba85e2#_reference-4c0cfe43b25323d43bd3

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

dockerで機械学習(71) 環境構築(1) docker どっかーら、どーやってもエラーばっかり。
https://qiita.com/kaizen_nagoya/items/690d806a4760d9b9e040

dockerで機械学習(72) 環境構築(2) Docker for Windows
https://qiita.com/kaizen_nagoya/items/c4daa5cf52e9f0c2c002

dockerで機械学習(73) 環境構築(3) docker/linux/macos bash スクリプト, ms-dos batchファイル
https://qiita.com/kaizen_nagoya/items/3f7b39110b7f303a5558

dockerで機械学習(74) 環境構築(4) R 難関いくつ?
https://qiita.com/kaizen_nagoya/items/5fb44773bc38574bcf1c

dockerで機械学習(75)環境構築(5)docker関連ファイルの管理
https://qiita.com/kaizen_nagoya/items/4f03df9a42c923087b5d

ゼロから作るDeepLearning2自然言語処理編 読書会の進め方(例)
https://qiita.com/kaizen_nagoya/items/025eb3f701b36209302e

環境構築

OpenCVをPythonで動かそうとしてlibGL.soが無いって言われたけど解決した。
https://qiita.com/toshitanian/items/5da24c0c0bd473d514c8

サーバサイドにおけるmatplotlibによる作図Tips
https://qiita.com/TomokIshii/items/3a26ee4453f535a69e9e

Dockerでホストとコンテナ間でのファイルコピー
https://qiita.com/gologo13/items/7e4e404af80377b48fd5

Docker for Mac でファイル共有を利用する
https://qiita.com/seijimomoto/items/1992d68de8baa7e29bb5

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

Ubuntu 16.04 LTS で NVIDIA Docker を使ってみる
https://blog.amedama.jp/entry/2017/04/03/235901

文書履歴(document history)

ver. 0.10 初稿 20181022