SlideShare a Scribd company logo
わんくま同盟 名古屋勉強会 #46
機械学習環境にハマってみよう
2018/12/15(土)
You&I
わんくま同盟 名古屋勉強会 #46
ジコ、ショウカイ。
• H/N: You&I(読み:ユーアンドアイ)
• SNS: @you_and_i
• 出身: 生まれも育ちも名古屋市
• 年齢: 40歳代
• 本職: 商学部出身の職業プログラマ
• 言語: C++他
•所属: プロ生勉強会 名古屋支部
名古屋アジャイル勉強会
わんくま同盟 名古屋勉強会
2
わんくま同盟 名古屋勉強会 #46
AGENDA
1. 機械学習フレームワーク
2. Python環境構築
3. 機械学習環境構築
4. その他
3
わんくま同盟 名古屋勉強会 #46
1. 機械学習フレームワーク
機械学習環境にハマってみよう
4
わんくま同盟 名古屋勉強会 #46
1. 機械学習フレームワーク
• セッション趣旨
– Python言語ベースの機械学習フレームワークの実
行環境構築って、色々ハマりどころが多い気がする。
(多分、気のせいではないけど)
– 自分は機械学習側の開発ではなく、フレームワークか
ら呼び出されるシミュレータ側の開発。早く学習できる
実行環境こそパワー。
– オンプレ前提でクラウドは扱いません。
– あくまで個人的な主観でちょっと整理してみよう。
5
わんくま同盟 名古屋勉強会 #46
1. 機械学習フレームワーク
• 用語整理
6
用語 説明
Machine Learning 機械学習
Reinforcement learning 強化学習
Deep Learning 深層学習
CNN/ConvNet(Convoluti
onal Neural Network)
畳み込みニューラルネットワーク
DNN(Deep Neural
Network)
多層型ニューラルネットワーク
RNN(Recurrent Neural
Network)
再帰型ニューラルネットワーク
わんくま同盟 名古屋勉強会 #46
1. 機械学習フレームワーク
• 主な機械学習フレームワーク
– UCバークレー Caffe
– Facebook/NVDIA Caffe2
– Google TensorFlow
• Keras
• Unity ML-Agents
– Preferred Networks Chainer
– (Facebook) PyTorch
7
わんくま同盟 名古屋勉強会 #46
2. Python環境構築
機械学習環境にハマってみよう
8
わんくま同盟 名古屋勉強会 #46
2. Python環境構築
• OSの選択
– Linux
• Distribution
– Ubuntu
– RHEL/CentOS
– RedHawk Linux (RedHawk 7.3ではCUDA 8.0導入済み)
• Kernel
– Generic Kernel
– RT_PREEMPT Kernel (Realtime)
– LowLatency Kernel (Realtime)
– Microsoft Windows
– Apple macOS
9
わんくま同盟 名古屋勉強会 #46
2. Python環境構築
• Python環境の選択
– Docker
– Anaconda/Miniconda
– Python.orgのpythonインストーラ
– OSに付属するpython
• Pythonバージョンの選択
– Python 2.7
– Python 3.x(3.6 or 3.7)
10
わんくま同盟 名古屋勉強会 #46
2. Python環境構築
• Pythonパッケージ導入方法の選択
– Anaconda/Miniconda
• オンラインのみ
– pip
– ソースコードからビルドしてwheelパッケージ作成
※Anaconda/Miniconda環境からpipでパッ
ケージのインストールができますが、依存関係が
おかしくなる場合もあります。
11
わんくま同盟 名古屋勉強会 #46
2. Python環境構築
• 学習の高速化方法の選択
– NVIDIA CUDA
• NVIDIA cuDNN
• NVIDIA NCCL – 複数GPU制御
• NVIDIA Docker
• Preferred Networks CuPy – NumPy高速化
– Intel Distribution for Python
• Intel MKL(Math Kernel Library) –
BLAS/LAPACK高速化
• Intel MKL-DNN
– Intel Neural Compute Stick
12
わんくま同盟 名古屋勉強会 #46
2. Python環境構築
• NVIDIA CUDAを利用する場合のGPU選択
– NVIDIA CUDAにはCompute Capability値があり、GPU
毎に対応するバージョンが異なる。
https://developer.nvidia.com/cuda-gpus
– CUDAもバージョン毎にサポートするCompute Capability
及びDisplay Driverがある。
13
CUDA Compute Capability Driver(Linux) Driver(Windows)
CUDA 5.5以前 2.0 ~ 3.5
CUDA 6.0/6.5/7.0 2.0 ~ 5.2 >= 346.46 >= 347.62
CUDA 8.0 5.0 ~ 6.1 >= 367.48 >= 369.30
CUDA 9.0/9.1/9.2 5.0 ~ 7.0 >= 384.81 >= 385.54
CUDA 10.0 5.0 ~ 7.5 >= 410.48 >= 411.31
わんくま同盟 名古屋勉強会 #46
2. Python環境構築
• まとめ
– OS
– Python環境
– Pythonパッケージ導入方法
– 学習の高速化方法
– NVIDIA CUDAを利用する場合のGPU選択
• 上記に加えて、それぞれのバージョンの組み合わ
せの検討が必要。
14
わんくま同盟 名古屋勉強会 #46
3. 機械学習環境構築
機械学習環境にハマってみよう
15
わんくま同盟 名古屋勉強会 #46
3. 機械学習環境構築
• Facebook/NVIDIA Caffe2
– フレームワーク導入方法
• Anaconda/Miniconda
• NVIDIA Docker
– 学習の高速化方法
• NVIDIA CUDA
16
わんくま同盟 名古屋勉強会 #46
3. 機械学習環境構築
• Google TensorFlow
– フレームワーク導入方法
• Anaconda/Miniconda
• pip
– 学習の高速化方法
• NVIDIA CUDA (TF 1.4以降はCUDA 9.0に対応)
– Anaconda/MinicondaからCUDAのインストールも可能
• Intel Distribution for Python
– Anaconda/MinicondaからMKL版のインストールも可能
• Intel Neural Compute Stick
17
わんくま同盟 名古屋勉強会 #46
3. 機械学習環境構築
• Preferred Networks Chainer
– フレームワーク導入方法
• pip
– 学習の高速化方法
• Preferred Networks CuPy
18
わんくま同盟 名古屋勉強会 #46
3. 機械学習環境構築
• (Facebook) PyTorch
– フレームワーク導入方法
• Anaconda/Miniconda
– 学習の高速化方法
• NVIDIA CUDA
– Anaconda/MinicondaからCUDAのインストールも可能
19
わんくま同盟 名古屋勉強会 #46
4. その他
機械学習環境にハマってみよう
20
わんくま同盟 名古屋勉強会 #46
4. その他
• Unity ML-Agentsの注意事項
– 利用可能な機械学習フレームワークのバージョンが固
定されている。最新版は使えない。
• Python 3.6
• TensorFlow 1.7
– GPGPUに最適化されていないので、GPGPU環境で
実行すると、CPU実行時よりも学習速度が遅くなる。
• https://github.com/Unity-Technologies/ml-
agents/issues/1246
21
わんくま同盟 名古屋勉強会 #46
4. その他
• 時間があればデモします
22
わんくま同盟 名古屋勉強会 #46
4. その他
• 以上、ハマりどころ沢山でしたね?
23

More Related Content

Similar to 機械学習環境にハマってみよう

Slurmのジョブスケジューリングと実装
Slurmのジョブスケジューリングと実装Slurmのジョブスケジューリングと実装
Slurmのジョブスケジューリングと実装
Ryuichi Sakamoto
 
OHS#2 pythonでgreをつくってみる
OHS#2 pythonでgreをつくってみるOHS#2 pythonでgreをつくってみる
OHS#2 pythonでgreをつくってみる
祐理 大野
 
ディープラーニングイメージで構築する快適・高速な機械学習環境
ディープラーニングイメージで構築する快適・高速な機械学習環境ディープラーニングイメージで構築する快適・高速な機械学習環境
ディープラーニングイメージで構築する快適・高速な機械学習環境
Yaboo Oyabu
 
Windowsにpythonをインストールしてみよう
WindowsにpythonをインストールしてみようWindowsにpythonをインストールしてみよう
WindowsにpythonをインストールしてみようKenji NAKAGAKI
 
さくらのIoT Platformを使ってみよう ~Developers in KOBE編~
さくらのIoT Platformを使ってみよう ~Developers in KOBE編~さくらのIoT Platformを使ってみよう ~Developers in KOBE編~
さくらのIoT Platformを使ってみよう ~Developers in KOBE編~
法林浩之
 
Kaggle の Titanic チュートリアルに挑戦した話
Kaggle の Titanic チュートリアルに挑戦した話Kaggle の Titanic チュートリアルに挑戦した話
Kaggle の Titanic チュートリアルに挑戦した話
y-uti
 
ToolChainを使った次世代DevOps環境の作り方
ToolChainを使った次世代DevOps環境の作り方ToolChainを使った次世代DevOps環境の作り方
ToolChainを使った次世代DevOps環境の作り方
Harada Kazuki
 
俺のローカル開発環境 - MTDDC Meetup NAGOYA 2014
俺のローカル開発環境 - MTDDC Meetup NAGOYA 2014俺のローカル開発環境 - MTDDC Meetup NAGOYA 2014
俺のローカル開発環境 - MTDDC Meetup NAGOYA 2014taiju higashi
 
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
Preferred Networks
 
私とOSSの25年
私とOSSの25年私とOSSの25年
私とOSSの25年
MITSUNARI Shigeo
 
NVIDIA ディープラーニング入門
NVIDIA ディープラーニング入門NVIDIA ディープラーニング入門
NVIDIA ディープラーニング入門
Seong-Hun Choe
 
Android & Nui & Physical Computing
Android & Nui & Physical ComputingAndroid & Nui & Physical Computing
Android & Nui & Physical ComputingTakahiro KUREBAYASHI
 
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
NTT DATA Technology & Innovation
 
OpenCLに触れてみよう
OpenCLに触れてみようOpenCLに触れてみよう
OpenCLに触れてみよう
You&I
 
Trat sprint6
Trat sprint6Trat sprint6
Trat sprint6
tratwakate
 
さくらのIoT Platformを使ってみよう ~OSC大阪編~
さくらのIoT Platformを使ってみよう ~OSC大阪編~さくらのIoT Platformを使ってみよう ~OSC大阪編~
さくらのIoT Platformを使ってみよう ~OSC大阪編~
法林浩之
 
Infrastructure as Codeの取り組みと改善
Infrastructure as Codeの取り組みと改善Infrastructure as Codeの取り組みと改善
Infrastructure as Codeの取り組みと改善
Takashi Honda
 
【20-E-5】実践!Infrastructure as a Codeの取り組みと改善
【20-E-5】実践!Infrastructure as a Codeの取り組みと改善【20-E-5】実践!Infrastructure as a Codeの取り組みと改善
【20-E-5】実践!Infrastructure as a Codeの取り組みと改善
Developers Summit
 
Trat sprint6 pdf
Trat sprint6 pdfTrat sprint6 pdf
Trat sprint6 pdf
tratwakate
 
20170726 py data.tokyo
20170726 py data.tokyo20170726 py data.tokyo
20170726 py data.tokyo
ManaMurakami1
 

Similar to 機械学習環境にハマってみよう (20)

Slurmのジョブスケジューリングと実装
Slurmのジョブスケジューリングと実装Slurmのジョブスケジューリングと実装
Slurmのジョブスケジューリングと実装
 
OHS#2 pythonでgreをつくってみる
OHS#2 pythonでgreをつくってみるOHS#2 pythonでgreをつくってみる
OHS#2 pythonでgreをつくってみる
 
ディープラーニングイメージで構築する快適・高速な機械学習環境
ディープラーニングイメージで構築する快適・高速な機械学習環境ディープラーニングイメージで構築する快適・高速な機械学習環境
ディープラーニングイメージで構築する快適・高速な機械学習環境
 
Windowsにpythonをインストールしてみよう
WindowsにpythonをインストールしてみようWindowsにpythonをインストールしてみよう
Windowsにpythonをインストールしてみよう
 
さくらのIoT Platformを使ってみよう ~Developers in KOBE編~
さくらのIoT Platformを使ってみよう ~Developers in KOBE編~さくらのIoT Platformを使ってみよう ~Developers in KOBE編~
さくらのIoT Platformを使ってみよう ~Developers in KOBE編~
 
Kaggle の Titanic チュートリアルに挑戦した話
Kaggle の Titanic チュートリアルに挑戦した話Kaggle の Titanic チュートリアルに挑戦した話
Kaggle の Titanic チュートリアルに挑戦した話
 
ToolChainを使った次世代DevOps環境の作り方
ToolChainを使った次世代DevOps環境の作り方ToolChainを使った次世代DevOps環境の作り方
ToolChainを使った次世代DevOps環境の作り方
 
俺のローカル開発環境 - MTDDC Meetup NAGOYA 2014
俺のローカル開発環境 - MTDDC Meetup NAGOYA 2014俺のローカル開発環境 - MTDDC Meetup NAGOYA 2014
俺のローカル開発環境 - MTDDC Meetup NAGOYA 2014
 
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
 
私とOSSの25年
私とOSSの25年私とOSSの25年
私とOSSの25年
 
NVIDIA ディープラーニング入門
NVIDIA ディープラーニング入門NVIDIA ディープラーニング入門
NVIDIA ディープラーニング入門
 
Android & Nui & Physical Computing
Android & Nui & Physical ComputingAndroid & Nui & Physical Computing
Android & Nui & Physical Computing
 
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
 
OpenCLに触れてみよう
OpenCLに触れてみようOpenCLに触れてみよう
OpenCLに触れてみよう
 
Trat sprint6
Trat sprint6Trat sprint6
Trat sprint6
 
さくらのIoT Platformを使ってみよう ~OSC大阪編~
さくらのIoT Platformを使ってみよう ~OSC大阪編~さくらのIoT Platformを使ってみよう ~OSC大阪編~
さくらのIoT Platformを使ってみよう ~OSC大阪編~
 
Infrastructure as Codeの取り組みと改善
Infrastructure as Codeの取り組みと改善Infrastructure as Codeの取り組みと改善
Infrastructure as Codeの取り組みと改善
 
【20-E-5】実践!Infrastructure as a Codeの取り組みと改善
【20-E-5】実践!Infrastructure as a Codeの取り組みと改善【20-E-5】実践!Infrastructure as a Codeの取り組みと改善
【20-E-5】実践!Infrastructure as a Codeの取り組みと改善
 
Trat sprint6 pdf
Trat sprint6 pdfTrat sprint6 pdf
Trat sprint6 pdf
 
20170726 py data.tokyo
20170726 py data.tokyo20170726 py data.tokyo
20170726 py data.tokyo
 

機械学習環境にハマってみよう

  • 2. わんくま同盟 名古屋勉強会 #46 ジコ、ショウカイ。 • H/N: You&I(読み:ユーアンドアイ) • SNS: @you_and_i • 出身: 生まれも育ちも名古屋市 • 年齢: 40歳代 • 本職: 商学部出身の職業プログラマ • 言語: C++他 •所属: プロ生勉強会 名古屋支部 名古屋アジャイル勉強会 わんくま同盟 名古屋勉強会 2
  • 3. わんくま同盟 名古屋勉強会 #46 AGENDA 1. 機械学習フレームワーク 2. Python環境構築 3. 機械学習環境構築 4. その他 3
  • 4. わんくま同盟 名古屋勉強会 #46 1. 機械学習フレームワーク 機械学習環境にハマってみよう 4
  • 5. わんくま同盟 名古屋勉強会 #46 1. 機械学習フレームワーク • セッション趣旨 – Python言語ベースの機械学習フレームワークの実 行環境構築って、色々ハマりどころが多い気がする。 (多分、気のせいではないけど) – 自分は機械学習側の開発ではなく、フレームワークか ら呼び出されるシミュレータ側の開発。早く学習できる 実行環境こそパワー。 – オンプレ前提でクラウドは扱いません。 – あくまで個人的な主観でちょっと整理してみよう。 5
  • 6. わんくま同盟 名古屋勉強会 #46 1. 機械学習フレームワーク • 用語整理 6 用語 説明 Machine Learning 機械学習 Reinforcement learning 強化学習 Deep Learning 深層学習 CNN/ConvNet(Convoluti onal Neural Network) 畳み込みニューラルネットワーク DNN(Deep Neural Network) 多層型ニューラルネットワーク RNN(Recurrent Neural Network) 再帰型ニューラルネットワーク
  • 7. わんくま同盟 名古屋勉強会 #46 1. 機械学習フレームワーク • 主な機械学習フレームワーク – UCバークレー Caffe – Facebook/NVDIA Caffe2 – Google TensorFlow • Keras • Unity ML-Agents – Preferred Networks Chainer – (Facebook) PyTorch 7
  • 8. わんくま同盟 名古屋勉強会 #46 2. Python環境構築 機械学習環境にハマってみよう 8
  • 9. わんくま同盟 名古屋勉強会 #46 2. Python環境構築 • OSの選択 – Linux • Distribution – Ubuntu – RHEL/CentOS – RedHawk Linux (RedHawk 7.3ではCUDA 8.0導入済み) • Kernel – Generic Kernel – RT_PREEMPT Kernel (Realtime) – LowLatency Kernel (Realtime) – Microsoft Windows – Apple macOS 9
  • 10. わんくま同盟 名古屋勉強会 #46 2. Python環境構築 • Python環境の選択 – Docker – Anaconda/Miniconda – Python.orgのpythonインストーラ – OSに付属するpython • Pythonバージョンの選択 – Python 2.7 – Python 3.x(3.6 or 3.7) 10
  • 11. わんくま同盟 名古屋勉強会 #46 2. Python環境構築 • Pythonパッケージ導入方法の選択 – Anaconda/Miniconda • オンラインのみ – pip – ソースコードからビルドしてwheelパッケージ作成 ※Anaconda/Miniconda環境からpipでパッ ケージのインストールができますが、依存関係が おかしくなる場合もあります。 11
  • 12. わんくま同盟 名古屋勉強会 #46 2. Python環境構築 • 学習の高速化方法の選択 – NVIDIA CUDA • NVIDIA cuDNN • NVIDIA NCCL – 複数GPU制御 • NVIDIA Docker • Preferred Networks CuPy – NumPy高速化 – Intel Distribution for Python • Intel MKL(Math Kernel Library) – BLAS/LAPACK高速化 • Intel MKL-DNN – Intel Neural Compute Stick 12
  • 13. わんくま同盟 名古屋勉強会 #46 2. Python環境構築 • NVIDIA CUDAを利用する場合のGPU選択 – NVIDIA CUDAにはCompute Capability値があり、GPU 毎に対応するバージョンが異なる。 https://developer.nvidia.com/cuda-gpus – CUDAもバージョン毎にサポートするCompute Capability 及びDisplay Driverがある。 13 CUDA Compute Capability Driver(Linux) Driver(Windows) CUDA 5.5以前 2.0 ~ 3.5 CUDA 6.0/6.5/7.0 2.0 ~ 5.2 >= 346.46 >= 347.62 CUDA 8.0 5.0 ~ 6.1 >= 367.48 >= 369.30 CUDA 9.0/9.1/9.2 5.0 ~ 7.0 >= 384.81 >= 385.54 CUDA 10.0 5.0 ~ 7.5 >= 410.48 >= 411.31
  • 14. わんくま同盟 名古屋勉強会 #46 2. Python環境構築 • まとめ – OS – Python環境 – Pythonパッケージ導入方法 – 学習の高速化方法 – NVIDIA CUDAを利用する場合のGPU選択 • 上記に加えて、それぞれのバージョンの組み合わ せの検討が必要。 14
  • 15. わんくま同盟 名古屋勉強会 #46 3. 機械学習環境構築 機械学習環境にハマってみよう 15
  • 16. わんくま同盟 名古屋勉強会 #46 3. 機械学習環境構築 • Facebook/NVIDIA Caffe2 – フレームワーク導入方法 • Anaconda/Miniconda • NVIDIA Docker – 学習の高速化方法 • NVIDIA CUDA 16
  • 17. わんくま同盟 名古屋勉強会 #46 3. 機械学習環境構築 • Google TensorFlow – フレームワーク導入方法 • Anaconda/Miniconda • pip – 学習の高速化方法 • NVIDIA CUDA (TF 1.4以降はCUDA 9.0に対応) – Anaconda/MinicondaからCUDAのインストールも可能 • Intel Distribution for Python – Anaconda/MinicondaからMKL版のインストールも可能 • Intel Neural Compute Stick 17
  • 18. わんくま同盟 名古屋勉強会 #46 3. 機械学習環境構築 • Preferred Networks Chainer – フレームワーク導入方法 • pip – 学習の高速化方法 • Preferred Networks CuPy 18
  • 19. わんくま同盟 名古屋勉強会 #46 3. 機械学習環境構築 • (Facebook) PyTorch – フレームワーク導入方法 • Anaconda/Miniconda – 学習の高速化方法 • NVIDIA CUDA – Anaconda/MinicondaからCUDAのインストールも可能 19
  • 20. わんくま同盟 名古屋勉強会 #46 4. その他 機械学習環境にハマってみよう 20
  • 21. わんくま同盟 名古屋勉強会 #46 4. その他 • Unity ML-Agentsの注意事項 – 利用可能な機械学習フレームワークのバージョンが固 定されている。最新版は使えない。 • Python 3.6 • TensorFlow 1.7 – GPGPUに最適化されていないので、GPGPU環境で 実行すると、CPU実行時よりも学習速度が遅くなる。 • https://github.com/Unity-Technologies/ml- agents/issues/1246 21
  • 22. わんくま同盟 名古屋勉強会 #46 4. その他 • 時間があればデモします 22
  • 23. わんくま同盟 名古屋勉強会 #46 4. その他 • 以上、ハマりどころ沢山でしたね? 23