SlideShare a Scribd company logo
1 of 20
【2017年】ディープラーニング
のフレームワーク比較
SEPT., 2017
鈴木亮太,大津耕陽,歌田夢香,細原大輔
フレームワーク多すぎ
• Amazon Machine Learning, Apache SINGA, Big Sur, BigDL, Blocks, Caffe, Caffe2,
Chainer, cuda-convnet, cuDNN, darknet, Deeplearning4j, deepy, DIGITS, Dlib,
DSSTNE, DyNet, Eblearn, Keras, Lasagne, MatConvnet, Mathematica, Microsoft
Cognitive Toolkit (CNTK), Minerva, Mocha.JL, MXNet, neon, Neural Designer,
Nnabla, nolearn, NV-Caffe, OpenDeep, PaddlePaddle, PredictionIO, Purine,
PyBrain, Pylearn2, PyTorch, Sparking Warter, TensorFlow, Theano, Torch7, Watson
◦ 他多数
• なにこれ
• 推測するに,理論的には単純で実装が簡単だから「よーしおれらもつくるべー」
が量産された結果だと思われる.
◦ あるいはcaffeつらい
• で,どれがいいの?
概要
• メンバーが実際に使ってみて,各フレームワーク×各観点で分析を行いました.
◦ インストールしやすさ
◦ 実装の容易さ
◦ 処理速度
◦ 学習速度を実験して比較
◦ 他と比較した特徴
◦ 10年後残る?
◦ 使用可能言語
◦ 拡張性
◦ Windowsで使える?
• フレームワーク
◦ Caffe/Caffe2, Torch7/PyTorch, TensorFlow,Keras,Chainer,MatConvNet
特徴早見表
• Caffe/Caffe2
◦ 古豪
◦ Caffe2からFacebook
◦ インストール・開発困難→Caffe2で改善
◦ コードが長い
◦ 最速
• Torch7/PyTorch
◦ Facebook
◦ 高速(Caffe並み)
◦ 開発が楽
◦ 研究者ユーザが多い
• TensorFlow
◦ Google製
◦ 低速
◦ 学習(Session)に慣れが必要
• Keras
◦ 非常におてがる,初心者の勉強向け
◦ 勉強だけにして早期卒業をお勧め
• Chainer
◦ PFN
◦ 日本人ユーザがほとんど
◦ Define by Run
◦ メンテナンスがホット
• MatConvNet
◦ MATLABでつかえる
◦ 研究者ユーザが多い
• Theano/PyLearn2
◦ 古豪2
◦ しらない
◦ 終了のお知らせ
Caffe
• 古豪
◦ 使い続ける従来のユーザが多い
◦ でも絶賛人口流出中
• 言語
◦ C++ベース,Pythonも
• 苦行
◦ インストールが大変?
◦ 初心者には苦行
◦ 最近はそれほどでもない
◦ Windowsにも素直に入る
◦ コーディングがすごく大変
◦ 一つのネットワーク組むのに3倍以上コード書かさ
れる
◦ 一つのネットワークに複数のファイルを用意する
必要があってつらい
◦ 一線を画すガラパゴス感
• 最速
◦ すごいはやい
◦ Python系はオーバヘッドがある
◦ 学習速度は正義
◦ 週オーダが日オーダになれば色々試行錯誤して
よりよいものが作れる
◦ 開発系・組み込み系では更に重要
• Caffe2の出現に期待感
• 10年後残る?
◦ Caffe2の頑張りで残ると思われる
Caffe2
• FacebookがメンテするCaffeの後継
◦ Torchとの連携が目論めそう
• ネットワーク構築方法が他のフレーム
ワークに近くなる,ユーティリティインタ
フェースがついた
◦ イマドキな感じで使える かも(未調査)
• インストールが辛い
◦ まだWindowsでの安定的なインストール
が不能
◦ Caffeのようにこれから改善する?
Torch7
• Facebookが拡張を出してる
• Lua
◦ モジュールの中身はC++なので,C++ラッ
パーもある
• 高速?(Caffe並み?)
◦ arXivの論文によれば.
◦ 実際使ってみると遅いことが…
◦ 「速い」って言ってるスコアが出ない
=ビルドが難物?
• 開発が楽
◦ Kerasに毛が生えたレベルで使えるもよう
◦ 有用なモジュールが多数あって便利
• インストールは楽なほう
• Windowsへのインストールは絶望レベル
に困難
◦ 一応やりかたはQiitaの記事にまとめました
• ヨーロッパの研究者のユーザ人口が多
い?
• 再現性が高い
◦ いざPublishされているものを試してみると,
他のものでは同じ値が出てこないが,Torch
だとそのまま出てくる
• 総じて研究者向け
◦ 開発にも使えるか
PyTorch
• Facebookがメンテナンスしている
• Python
• ChainerのForkなので,Chainerとよく似
てる
◦ モジュール名が違うくらい
• Define by Run
• Python系では最速
◦ 中身のテンソル計算系などのC++実装が
Torchの流用
◦ データローダが高速
◦ (本稿では)なぜかTorchよりはやい
• インストール,開発が楽
◦ Windowsでも問題なし
• PyTorchに移行するTorchユーザ多い
TensorFlow
• Google製
◦ ユーザ人口が最大
◦ 検索すればやりたいことはほぼ必ず見つかる
◦ 企業ユーザが多い?
◦ シェアは正義
• Python,C++
• 開発が楽
◦ DNN分かっている人なら,が前につく
◦ 拡張がやりやすい
• 低速?
◦ 意外と早い?
安定して最速ビルドを利用できる模様
• 難しい?
◦ 「計算グラフ」で実装する低レベル仕様
◦ 開発・DNN初心者が触るのは難しいかも
◦ ユーザ多い=初心者・非エンジニア多い
◦ Kerasの吸収で解決するかも
• マシン分散がやりやすい
◦ (研究界と比較して)大資産な企業と親
和性が高い
• 今後,更に人口が増えるのでは
Keras
• 「お手軽」が至上のテーマ
• すごく簡単
◦ インストール1行,気にしなくても勝手に
GPUで高速化
◦ コーディングもいちばん簡単
◦ あらゆる部分がブラックボックス化してい
て,もはやプログラミング不要.ただマー
クアップするだけ
• TensorFlow,Theanoをバックエンドに
する
◦ ユーザ的にはほぼTensorFlowが現状か
• 開発者が一人
◦ 状況が変わると開発終了するかも
• TensorFlowに吸収され中
◦ Kerasモジュールがある
◦ しばらくしたら不要になる?
◦ 「TensorFlowは難しい」を払拭する?
Chainer
• 日本の企業Prefered Networks(PFN)
が作っている
• Define by Runのさきがけ
◦ 真にRNNを実装可能なパラダイム
◦ 自然言語処理系に強い
• DNNをよく知っている必要がありそう
• インストール簡単
• DNNはもちろん,様々な機械学習がで
きるフレームワークとして成長中
• 機械学習屋が使うのに便利そう
• 低速?
◦ 実行時にネットワークをコンパイルする
模様
◦ 本当に遅いのかちゃんと調べたい
MatConvNet
• MATLABで使える
◦ MATLAB使ってた研究者にモテモテ
• これ自体はフリーで導入も簡単
◦ Parallel Conputing Toolbox(有料)が必要
• インストール超簡単
◦ さすが有料なだけあるMATLAB
• ネットワーク構築の書き方は独特
• 低速?
◦ 要調査
その他
• CNTK
◦ Microsoft様
◦ 高速,多言語らしい
• DyNet
◦ Define by Runだって
• MXNet
◦ 高速だって
• Deeplearning4j
◦ Javaだって
学習速度比較
0
2000
4000
6000
8000
10000
12000
14000
16000
MNIST_CNN (CPU)
0
1
2
3
4
5
6
7
8
9
10
XOR_MLP (CPU)
0
10
20
30
40
50
60
70
80
90
100
MNIST_CNN (GPU)
0
5
10
15
20
25
30
35
40
45
XOR_MLP (GPU)
Ubuntu
Windows
s/10000epoch s/10000epoch
s/12epoch s/12epoch
学習速度比較
• Caffeはやっぱり最速
• TensorFlowは実は速い?PyTorchも速
そう
• なぜかTorchが遅い
◦ ビルドのところで揺れがある?=インス
トールが鬼門?
• Kerasはとりあえず遅い
◦ TensorFlowバックエンドなのに,何してる
の?
• MatConvNetは遅いかもしれない
調査を続けたい
• 実は学習速度≠全体の実行速度
◦ Chainerはぱっと見遅いが,実はDefine
by Runの都合上,ネットワークコンパイ
ルも計測時間に含まれてしまっているの
で注意.
• ビルドのやり方,環境によって実行速
度に差が出る
◦ 速度的に安定したビルドの仕方がな
い?
• 速度のボトルネック要因
◦ データセットのロード
◦ ネットワークのコンパイル
◦ メモリの扱い
◦ ループのオーバヘッド?
◦ ネットワークの計算
今回の計測ターゲット
言語で比較
• 基本的にラッパーが出回る
◦ 特にC++のラッパーは多いので使うとき
に調査するべき
◦ Caffeモデルに変換してCaffe on OpenCV
が個人的にオススメ
• C++
◦ Caffe, TnsorFlow
• Lua
◦ Torch
• Python
◦ TensorFlow, Keras, PyTorch, Chainer
• Matlab
◦ MatConvNet
• Java
◦ Deeplearning4j
• C#
◦ CNTK
結論
• 折角いろいろあるので,適材適所がよいのでは
◦ あとは宗教
• 下記,メンバーのお勧めです.
• 初心者
◦ Tensorflow/Kerasがよさそうです.実に簡単にNNが構築でき,Web資料も親切なのが多いです.
◦ が,玉石混交なので逆に欲しい情報にたどり着かないことも・・・
◦ (今のところ)Caffeはいろいろと苦行なのでやめておいたほうが…
• 企業エンジニア
◦ プロトタイピングにTensorFlow/Torch,開発にCaffe
◦ 自社開発
◦ 今からメジャーになるのはまずムリだと思いますが
• 研究者
◦ TensorFlowかPyTorchがオススメ
◦ Chainer vs PyTorch > PyTorchがメジャーとりそうな流れ
◦ Caffeが安定して高速動作するのでその点ではオススメ.難しいけど…
• 宗教家
◦ Java教,Microsoft教,…
おまけ
フレームワーク間移行
• DNNの移行は,ネットワーク構造だけ実装,重みなどのパラメータをコピーする
ことでできる
• Model Zooに学習済みモデルいっぱいあるので,それ使いまわせるといいよね
◦ 時間がすごくかかる学習はやりたくないよね
◦ というか研究室レベルでは無理の領域に入ってる
• コンバータを作る人は多いが,完全網羅はされなそう
◦ 使いたいときはちゃんとできるのか調べる必要がある
w00
w01 w10
w11
コピー
コピー
ネットワーク構造は
先に作る
ハイパーパラメータのチューニング
• 「最適」の保証は理論的にない
• 学習率が一番影響が大きいので頑張って調整しましょう
• 探索をやりましょう
◦ グリッド探索
◦ ベイズ推定
• ネットワーク構造は最大・自動生成不能パラメータ

More Related Content

What's hot

不均衡データのクラス分類
不均衡データのクラス分類不均衡データのクラス分類
不均衡データのクラス分類Shintaro Fukushima
 
DQNからRainbowまで 〜深層強化学習の最新動向〜
DQNからRainbowまで 〜深層強化学習の最新動向〜DQNからRainbowまで 〜深層強化学習の最新動向〜
DQNからRainbowまで 〜深層強化学習の最新動向〜Jun Okumura
 
深層学習の数理
深層学習の数理深層学習の数理
深層学習の数理Taiji Suzuki
 
全力解説!Transformer
全力解説!Transformer全力解説!Transformer
全力解説!TransformerArithmer Inc.
 
【DL輪読会】High-Resolution Image Synthesis with Latent Diffusion Models
【DL輪読会】High-Resolution Image Synthesis with Latent Diffusion Models【DL輪読会】High-Resolution Image Synthesis with Latent Diffusion Models
【DL輪読会】High-Resolution Image Synthesis with Latent Diffusion ModelsDeep Learning JP
 
Curriculum Learning (関東CV勉強会)
Curriculum Learning (関東CV勉強会)Curriculum Learning (関東CV勉強会)
Curriculum Learning (関東CV勉強会)Yoshitaka Ushiku
 
[DL輪読会]DropBlock: A regularization method for convolutional networks
[DL輪読会]DropBlock: A regularization method for convolutional networks[DL輪読会]DropBlock: A regularization method for convolutional networks
[DL輪読会]DropBlock: A regularization method for convolutional networksDeep Learning JP
 
【DL輪読会】DiffRF: Rendering-guided 3D Radiance Field Diffusion [N. Muller+ CVPR2...
【DL輪読会】DiffRF: Rendering-guided 3D Radiance Field Diffusion [N. Muller+ CVPR2...【DL輪読会】DiffRF: Rendering-guided 3D Radiance Field Diffusion [N. Muller+ CVPR2...
【DL輪読会】DiffRF: Rendering-guided 3D Radiance Field Diffusion [N. Muller+ CVPR2...Deep Learning JP
 
Layer Normalization@NIPS+読み会・関西
Layer Normalization@NIPS+読み会・関西Layer Normalization@NIPS+読み会・関西
Layer Normalization@NIPS+読み会・関西Keigo Nishida
 
Triplet Loss 徹底解説
Triplet Loss 徹底解説Triplet Loss 徹底解説
Triplet Loss 徹底解説tancoro
 
【DL輪読会】NeRF in the Palm of Your Hand: Corrective Augmentation for Robotics vi...
【DL輪読会】NeRF in the Palm of Your Hand: Corrective Augmentation for Robotics vi...【DL輪読会】NeRF in the Palm of Your Hand: Corrective Augmentation for Robotics vi...
【DL輪読会】NeRF in the Palm of Your Hand: Corrective Augmentation for Robotics vi...Deep Learning JP
 
[DL輪読会]ICLR2020の分布外検知速報
[DL輪読会]ICLR2020の分布外検知速報[DL輪読会]ICLR2020の分布外検知速報
[DL輪読会]ICLR2020の分布外検知速報Deep Learning JP
 
ConvNetの歴史とResNet亜種、ベストプラクティス
ConvNetの歴史とResNet亜種、ベストプラクティスConvNetの歴史とResNet亜種、ベストプラクティス
ConvNetの歴史とResNet亜種、ベストプラクティスYusuke Uchida
 
Active Learning と Bayesian Neural Network
Active Learning と Bayesian Neural NetworkActive Learning と Bayesian Neural Network
Active Learning と Bayesian Neural NetworkNaoki Matsunaga
 
[DL輪読会]A closer look at few shot classification
[DL輪読会]A closer look at few shot classification[DL輪読会]A closer look at few shot classification
[DL輪読会]A closer look at few shot classificationDeep Learning JP
 
【DL輪読会】The Forward-Forward Algorithm: Some Preliminary
【DL輪読会】The Forward-Forward Algorithm: Some Preliminary【DL輪読会】The Forward-Forward Algorithm: Some Preliminary
【DL輪読会】The Forward-Forward Algorithm: Some PreliminaryDeep Learning JP
 
Transformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法についてTransformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法についてSho Takase
 
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)RyuichiKanoh
 
【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習cvpaper. challenge
 

What's hot (20)

不均衡データのクラス分類
不均衡データのクラス分類不均衡データのクラス分類
不均衡データのクラス分類
 
DQNからRainbowまで 〜深層強化学習の最新動向〜
DQNからRainbowまで 〜深層強化学習の最新動向〜DQNからRainbowまで 〜深層強化学習の最新動向〜
DQNからRainbowまで 〜深層強化学習の最新動向〜
 
深層学習の数理
深層学習の数理深層学習の数理
深層学習の数理
 
全力解説!Transformer
全力解説!Transformer全力解説!Transformer
全力解説!Transformer
 
ResNetの仕組み
ResNetの仕組みResNetの仕組み
ResNetの仕組み
 
【DL輪読会】High-Resolution Image Synthesis with Latent Diffusion Models
【DL輪読会】High-Resolution Image Synthesis with Latent Diffusion Models【DL輪読会】High-Resolution Image Synthesis with Latent Diffusion Models
【DL輪読会】High-Resolution Image Synthesis with Latent Diffusion Models
 
Curriculum Learning (関東CV勉強会)
Curriculum Learning (関東CV勉強会)Curriculum Learning (関東CV勉強会)
Curriculum Learning (関東CV勉強会)
 
[DL輪読会]DropBlock: A regularization method for convolutional networks
[DL輪読会]DropBlock: A regularization method for convolutional networks[DL輪読会]DropBlock: A regularization method for convolutional networks
[DL輪読会]DropBlock: A regularization method for convolutional networks
 
【DL輪読会】DiffRF: Rendering-guided 3D Radiance Field Diffusion [N. Muller+ CVPR2...
【DL輪読会】DiffRF: Rendering-guided 3D Radiance Field Diffusion [N. Muller+ CVPR2...【DL輪読会】DiffRF: Rendering-guided 3D Radiance Field Diffusion [N. Muller+ CVPR2...
【DL輪読会】DiffRF: Rendering-guided 3D Radiance Field Diffusion [N. Muller+ CVPR2...
 
Layer Normalization@NIPS+読み会・関西
Layer Normalization@NIPS+読み会・関西Layer Normalization@NIPS+読み会・関西
Layer Normalization@NIPS+読み会・関西
 
Triplet Loss 徹底解説
Triplet Loss 徹底解説Triplet Loss 徹底解説
Triplet Loss 徹底解説
 
【DL輪読会】NeRF in the Palm of Your Hand: Corrective Augmentation for Robotics vi...
【DL輪読会】NeRF in the Palm of Your Hand: Corrective Augmentation for Robotics vi...【DL輪読会】NeRF in the Palm of Your Hand: Corrective Augmentation for Robotics vi...
【DL輪読会】NeRF in the Palm of Your Hand: Corrective Augmentation for Robotics vi...
 
[DL輪読会]ICLR2020の分布外検知速報
[DL輪読会]ICLR2020の分布外検知速報[DL輪読会]ICLR2020の分布外検知速報
[DL輪読会]ICLR2020の分布外検知速報
 
ConvNetの歴史とResNet亜種、ベストプラクティス
ConvNetの歴史とResNet亜種、ベストプラクティスConvNetの歴史とResNet亜種、ベストプラクティス
ConvNetの歴史とResNet亜種、ベストプラクティス
 
Active Learning と Bayesian Neural Network
Active Learning と Bayesian Neural NetworkActive Learning と Bayesian Neural Network
Active Learning と Bayesian Neural Network
 
[DL輪読会]A closer look at few shot classification
[DL輪読会]A closer look at few shot classification[DL輪読会]A closer look at few shot classification
[DL輪読会]A closer look at few shot classification
 
【DL輪読会】The Forward-Forward Algorithm: Some Preliminary
【DL輪読会】The Forward-Forward Algorithm: Some Preliminary【DL輪読会】The Forward-Forward Algorithm: Some Preliminary
【DL輪読会】The Forward-Forward Algorithm: Some Preliminary
 
Transformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法についてTransformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法について
 
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
 
【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習
 

Viewers also liked

AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017Carol Smith
 
地震対策ハッカソン キズナコントラクト
地震対策ハッカソン  キズナコントラクト地震対策ハッカソン  キズナコントラクト
地震対策ハッカソン キズナコントラクト彩友美 小岩
 
Waston が拓く UX の新しい地平 〜 UX デザイナーが IBM Waston を使ってみた 〜:2017年4月22日 AI eats UX me...
Waston が拓く UX の新しい地平 〜 UX デザイナーが IBM Waston を使ってみた 〜:2017年4月22日 AI eats UX me...Waston が拓く UX の新しい地平 〜 UX デザイナーが IBM Waston を使ってみた 〜:2017年4月22日 AI eats UX me...
Waston が拓く UX の新しい地平 〜 UX デザイナーが IBM Waston を使ってみた 〜:2017年4月22日 AI eats UX me...Yoshiki Hayama
 
Watsonに、俺の推しアイドルがかわいいと、わかってほしかった:2017年12月3日 IBM Cloud (Bluemix) 冬の大勉強会
Watsonに、俺の推しアイドルがかわいいと、わかってほしかった:2017年12月3日 IBM Cloud (Bluemix) 冬の大勉強会Watsonに、俺の推しアイドルがかわいいと、わかってほしかった:2017年12月3日 IBM Cloud (Bluemix) 冬の大勉強会
Watsonに、俺の推しアイドルがかわいいと、わかってほしかった:2017年12月3日 IBM Cloud (Bluemix) 冬の大勉強会Yoshiki Hayama
 
SoftLayer Bluemix Summit 2015: BluemixでWatsonをつかいたおせ!
SoftLayer Bluemix Summit 2015: BluemixでWatsonをつかいたおせ!SoftLayer Bluemix Summit 2015: BluemixでWatsonをつかいたおせ!
SoftLayer Bluemix Summit 2015: BluemixでWatsonをつかいたおせ!Miki Yutani
 
ニューラルネットワークの仕組みを学ぶ 20170623
ニューラルネットワークの仕組みを学ぶ 20170623ニューラルネットワークの仕組みを学ぶ 20170623
ニューラルネットワークの仕組みを学ぶ 20170623Hiroki Takahashi
 
Atlassian Japan Forum 2017 The Information Ageの現実 なぜ組織が構造改革を進めなければならないのか
Atlassian Japan Forum 2017 The Information Ageの現実 なぜ組織が構造改革を進めなければならないのかAtlassian Japan Forum 2017 The Information Ageの現実 なぜ組織が構造改革を進めなければならないのか
Atlassian Japan Forum 2017 The Information Ageの現実 なぜ組織が構造改革を進めなければならないのかアトラシアン株式会社
 
Dots deep learning部_20161221
Dots deep learning部_20161221Dots deep learning部_20161221
Dots deep learning部_20161221陽平 山口
 
古典的ゲームAIを用いたAlphaGo解説
古典的ゲームAIを用いたAlphaGo解説古典的ゲームAIを用いたAlphaGo解説
古典的ゲームAIを用いたAlphaGo解説suckgeun lee
 
【LT版】Elixir入門「第7回:Python/KerasをElixirから繋いでアレコレする」
【LT版】Elixir入門「第7回:Python/KerasをElixirから繋いでアレコレする」【LT版】Elixir入門「第7回:Python/KerasをElixirから繋いでアレコレする」
【LT版】Elixir入門「第7回:Python/KerasをElixirから繋いでアレコレする」fukuoka.ex
 
【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」
【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」
【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」fukuoka.ex
 
[DL輪読会] MoCoGAN: Decomposing Motion and Content for Video Generation
[DL輪読会] MoCoGAN: Decomposing Motion and Content for Video Generation[DL輪読会] MoCoGAN: Decomposing Motion and Content for Video Generation
[DL輪読会] MoCoGAN: Decomposing Motion and Content for Video GenerationDeep Learning JP
 
AlphaGo Zero 解説
AlphaGo Zero 解説AlphaGo Zero 解説
AlphaGo Zero 解説suckgeun lee
 
Kerasで深層学習を実践する
Kerasで深層学習を実践するKerasで深層学習を実践する
Kerasで深層学習を実践するKazuaki Tanida
 
一年目がWatsonを調べてみた Discovery編
一年目がWatsonを調べてみた Discovery編一年目がWatsonを調べてみた Discovery編
一年目がWatsonを調べてみた Discovery編Jin Hirokawa
 
Watson Build Challengeに参加してみた
Watson Build Challengeに参加してみたWatson Build Challengeに参加してみた
Watson Build Challengeに参加してみたWataru Koyama
 
Tokyo webmining 2017-10-28
Tokyo webmining 2017-10-28Tokyo webmining 2017-10-28
Tokyo webmining 2017-10-28Kimikazu Kato
 
Pythonを使った機械学習の学習
Pythonを使った機械学習の学習Pythonを使った機械学習の学習
Pythonを使った機械学習の学習Kimikazu Kato
 

Viewers also liked (19)

AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
 
地震対策ハッカソン キズナコントラクト
地震対策ハッカソン  キズナコントラクト地震対策ハッカソン  キズナコントラクト
地震対策ハッカソン キズナコントラクト
 
Waston が拓く UX の新しい地平 〜 UX デザイナーが IBM Waston を使ってみた 〜:2017年4月22日 AI eats UX me...
Waston が拓く UX の新しい地平 〜 UX デザイナーが IBM Waston を使ってみた 〜:2017年4月22日 AI eats UX me...Waston が拓く UX の新しい地平 〜 UX デザイナーが IBM Waston を使ってみた 〜:2017年4月22日 AI eats UX me...
Waston が拓く UX の新しい地平 〜 UX デザイナーが IBM Waston を使ってみた 〜:2017年4月22日 AI eats UX me...
 
Watsonに、俺の推しアイドルがかわいいと、わかってほしかった:2017年12月3日 IBM Cloud (Bluemix) 冬の大勉強会
Watsonに、俺の推しアイドルがかわいいと、わかってほしかった:2017年12月3日 IBM Cloud (Bluemix) 冬の大勉強会Watsonに、俺の推しアイドルがかわいいと、わかってほしかった:2017年12月3日 IBM Cloud (Bluemix) 冬の大勉強会
Watsonに、俺の推しアイドルがかわいいと、わかってほしかった:2017年12月3日 IBM Cloud (Bluemix) 冬の大勉強会
 
SoftLayer Bluemix Summit 2015: BluemixでWatsonをつかいたおせ!
SoftLayer Bluemix Summit 2015: BluemixでWatsonをつかいたおせ!SoftLayer Bluemix Summit 2015: BluemixでWatsonをつかいたおせ!
SoftLayer Bluemix Summit 2015: BluemixでWatsonをつかいたおせ!
 
ニューラルネットワークの仕組みを学ぶ 20170623
ニューラルネットワークの仕組みを学ぶ 20170623ニューラルネットワークの仕組みを学ぶ 20170623
ニューラルネットワークの仕組みを学ぶ 20170623
 
Atlassian Japan Forum 2017 The Information Ageの現実 なぜ組織が構造改革を進めなければならないのか
Atlassian Japan Forum 2017 The Information Ageの現実 なぜ組織が構造改革を進めなければならないのかAtlassian Japan Forum 2017 The Information Ageの現実 なぜ組織が構造改革を進めなければならないのか
Atlassian Japan Forum 2017 The Information Ageの現実 なぜ組織が構造改革を進めなければならないのか
 
Dots deep learning部_20161221
Dots deep learning部_20161221Dots deep learning部_20161221
Dots deep learning部_20161221
 
古典的ゲームAIを用いたAlphaGo解説
古典的ゲームAIを用いたAlphaGo解説古典的ゲームAIを用いたAlphaGo解説
古典的ゲームAIを用いたAlphaGo解説
 
【LT版】Elixir入門「第7回:Python/KerasをElixirから繋いでアレコレする」
【LT版】Elixir入門「第7回:Python/KerasをElixirから繋いでアレコレする」【LT版】Elixir入門「第7回:Python/KerasをElixirから繋いでアレコレする」
【LT版】Elixir入門「第7回:Python/KerasをElixirから繋いでアレコレする」
 
【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」
【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」
【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」
 
[DL輪読会] MoCoGAN: Decomposing Motion and Content for Video Generation
[DL輪読会] MoCoGAN: Decomposing Motion and Content for Video Generation[DL輪読会] MoCoGAN: Decomposing Motion and Content for Video Generation
[DL輪読会] MoCoGAN: Decomposing Motion and Content for Video Generation
 
AlphaGo Zero 解説
AlphaGo Zero 解説AlphaGo Zero 解説
AlphaGo Zero 解説
 
Kerasで深層学習を実践する
Kerasで深層学習を実践するKerasで深層学習を実践する
Kerasで深層学習を実践する
 
一年目がWatsonを調べてみた Discovery編
一年目がWatsonを調べてみた Discovery編一年目がWatsonを調べてみた Discovery編
一年目がWatsonを調べてみた Discovery編
 
Watson Build Challengeに参加してみた
Watson Build Challengeに参加してみたWatson Build Challengeに参加してみた
Watson Build Challengeに参加してみた
 
Pycon2017
Pycon2017Pycon2017
Pycon2017
 
Tokyo webmining 2017-10-28
Tokyo webmining 2017-10-28Tokyo webmining 2017-10-28
Tokyo webmining 2017-10-28
 
Pythonを使った機械学習の学習
Pythonを使った機械学習の学習Pythonを使った機械学習の学習
Pythonを使った機械学習の学習
 

Similar to 【2017年】ディープラーニングのフレームワーク比較

EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とToru Takahashi
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とToru Takahashi
 
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」ManaMurakami1
 
ChainerでDeep Learningを試す為に必要なこと
ChainerでDeep Learningを試す為に必要なことChainerでDeep Learningを試す為に必要なこと
ChainerでDeep Learningを試す為に必要なことJiro Nishitoba
 
20161027 hadoop summit Generating Recommendations at Amazon Scale with Apach...
20161027 hadoop summit  Generating Recommendations at Amazon Scale with Apach...20161027 hadoop summit  Generating Recommendations at Amazon Scale with Apach...
20161027 hadoop summit Generating Recommendations at Amazon Scale with Apach...Amazon Web Services Japan
 
TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎Etsuji Nakai
 
ChainerでDeep Learningを試すために必要なこと
ChainerでDeep Learningを試すために必要なことChainerでDeep Learningを試すために必要なこと
ChainerでDeep Learningを試すために必要なことRetrieva inc.
 
DLL#3 Microsoft Community & AI Update
DLL#3 Microsoft Community & AI UpdateDLL#3 Microsoft Community & AI Update
DLL#3 Microsoft Community & AI UpdateHirono Jumpei
 
大規模並列実験を支えるクラウドサービスと基盤技術
大規模並列実験を支えるクラウドサービスと基盤技術大規模並列実験を支えるクラウドサービスと基盤技術
大規模並列実験を支えるクラウドサービスと基盤技術RyuichiKanoh
 
TensorFlowによるCNNアーキテクチャ構築
TensorFlowによるCNNアーキテクチャ構築TensorFlowによるCNNアーキテクチャ構築
TensorFlowによるCNNアーキテクチャ構築Hirokatsu Kataoka
 
20180723 PFNの研究基盤 / PFN research system infrastructure
20180723 PFNの研究基盤 / PFN research system infrastructure20180723 PFNの研究基盤 / PFN research system infrastructure
20180723 PFNの研究基盤 / PFN research system infrastructurePreferred Networks
 
マイクロサービスに至る歴史とこれから - XP祭り2021
マイクロサービスに至る歴史とこれから - XP祭り2021マイクロサービスに至る歴史とこれから - XP祭り2021
マイクロサービスに至る歴史とこれから - XP祭り2021Yusuke Suzuki
 
Chainer on Azure 2 年の歴史
Chainer on Azure 2 年の歴史Chainer on Azure 2 年の歴史
Chainer on Azure 2 年の歴史Hirono Jumpei
 
Using Deep Learning for Recommendation
Using Deep Learning for RecommendationUsing Deep Learning for Recommendation
Using Deep Learning for RecommendationEduardo Gonzalez
 
Thriftを用いた分散型のNyancatを作ってきた
Thriftを用いた分散型のNyancatを作ってきたThriftを用いた分散型のNyancatを作ってきた
Thriftを用いた分散型のNyancatを作ってきたHuy Do
 
いきなりAi tensor flow gpuによる画像分類と生成
いきなりAi tensor flow gpuによる画像分類と生成いきなりAi tensor flow gpuによる画像分類と生成
いきなりAi tensor flow gpuによる画像分類と生成Yoshi Sakai
 
Hadoop Source Code Reading #17
Hadoop Source Code Reading #17Hadoop Source Code Reading #17
Hadoop Source Code Reading #17Shingo Furuyama
 
産総研AIクラウドでChainerMN
産総研AIクラウドでChainerMN産総研AIクラウドでChainerMN
産総研AIクラウドでChainerMNHitoshi Sato
 
組込向けDeep Learning最新技術の紹介 量子化テクニックとDorefaNetについて
組込向けDeep Learning最新技術の紹介量子化テクニックとDorefaNetについて組込向けDeep Learning最新技術の紹介量子化テクニックとDorefaNetについて
組込向けDeep Learning最新技術の紹介 量子化テクニックとDorefaNetについてNatsutani Minoru
 

Similar to 【2017年】ディープラーニングのフレームワーク比較 (20)

EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
 
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」
 
ChainerでDeep Learningを試す為に必要なこと
ChainerでDeep Learningを試す為に必要なことChainerでDeep Learningを試す為に必要なこと
ChainerでDeep Learningを試す為に必要なこと
 
私とOSSの25年
私とOSSの25年私とOSSの25年
私とOSSの25年
 
20161027 hadoop summit Generating Recommendations at Amazon Scale with Apach...
20161027 hadoop summit  Generating Recommendations at Amazon Scale with Apach...20161027 hadoop summit  Generating Recommendations at Amazon Scale with Apach...
20161027 hadoop summit Generating Recommendations at Amazon Scale with Apach...
 
TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎
 
ChainerでDeep Learningを試すために必要なこと
ChainerでDeep Learningを試すために必要なことChainerでDeep Learningを試すために必要なこと
ChainerでDeep Learningを試すために必要なこと
 
DLL#3 Microsoft Community & AI Update
DLL#3 Microsoft Community & AI UpdateDLL#3 Microsoft Community & AI Update
DLL#3 Microsoft Community & AI Update
 
大規模並列実験を支えるクラウドサービスと基盤技術
大規模並列実験を支えるクラウドサービスと基盤技術大規模並列実験を支えるクラウドサービスと基盤技術
大規模並列実験を支えるクラウドサービスと基盤技術
 
TensorFlowによるCNNアーキテクチャ構築
TensorFlowによるCNNアーキテクチャ構築TensorFlowによるCNNアーキテクチャ構築
TensorFlowによるCNNアーキテクチャ構築
 
20180723 PFNの研究基盤 / PFN research system infrastructure
20180723 PFNの研究基盤 / PFN research system infrastructure20180723 PFNの研究基盤 / PFN research system infrastructure
20180723 PFNの研究基盤 / PFN research system infrastructure
 
マイクロサービスに至る歴史とこれから - XP祭り2021
マイクロサービスに至る歴史とこれから - XP祭り2021マイクロサービスに至る歴史とこれから - XP祭り2021
マイクロサービスに至る歴史とこれから - XP祭り2021
 
Chainer on Azure 2 年の歴史
Chainer on Azure 2 年の歴史Chainer on Azure 2 年の歴史
Chainer on Azure 2 年の歴史
 
Using Deep Learning for Recommendation
Using Deep Learning for RecommendationUsing Deep Learning for Recommendation
Using Deep Learning for Recommendation
 
Thriftを用いた分散型のNyancatを作ってきた
Thriftを用いた分散型のNyancatを作ってきたThriftを用いた分散型のNyancatを作ってきた
Thriftを用いた分散型のNyancatを作ってきた
 
いきなりAi tensor flow gpuによる画像分類と生成
いきなりAi tensor flow gpuによる画像分類と生成いきなりAi tensor flow gpuによる画像分類と生成
いきなりAi tensor flow gpuによる画像分類と生成
 
Hadoop Source Code Reading #17
Hadoop Source Code Reading #17Hadoop Source Code Reading #17
Hadoop Source Code Reading #17
 
産総研AIクラウドでChainerMN
産総研AIクラウドでChainerMN産総研AIクラウドでChainerMN
産総研AIクラウドでChainerMN
 
組込向けDeep Learning最新技術の紹介 量子化テクニックとDorefaNetについて
組込向けDeep Learning最新技術の紹介量子化テクニックとDorefaNetについて組込向けDeep Learning最新技術の紹介量子化テクニックとDorefaNetについて
組込向けDeep Learning最新技術の紹介 量子化テクニックとDorefaNetについて
 

【2017年】ディープラーニングのフレームワーク比較

  • 2. フレームワーク多すぎ • Amazon Machine Learning, Apache SINGA, Big Sur, BigDL, Blocks, Caffe, Caffe2, Chainer, cuda-convnet, cuDNN, darknet, Deeplearning4j, deepy, DIGITS, Dlib, DSSTNE, DyNet, Eblearn, Keras, Lasagne, MatConvnet, Mathematica, Microsoft Cognitive Toolkit (CNTK), Minerva, Mocha.JL, MXNet, neon, Neural Designer, Nnabla, nolearn, NV-Caffe, OpenDeep, PaddlePaddle, PredictionIO, Purine, PyBrain, Pylearn2, PyTorch, Sparking Warter, TensorFlow, Theano, Torch7, Watson ◦ 他多数 • なにこれ • 推測するに,理論的には単純で実装が簡単だから「よーしおれらもつくるべー」 が量産された結果だと思われる. ◦ あるいはcaffeつらい • で,どれがいいの?
  • 3. 概要 • メンバーが実際に使ってみて,各フレームワーク×各観点で分析を行いました. ◦ インストールしやすさ ◦ 実装の容易さ ◦ 処理速度 ◦ 学習速度を実験して比較 ◦ 他と比較した特徴 ◦ 10年後残る? ◦ 使用可能言語 ◦ 拡張性 ◦ Windowsで使える? • フレームワーク ◦ Caffe/Caffe2, Torch7/PyTorch, TensorFlow,Keras,Chainer,MatConvNet
  • 4. 特徴早見表 • Caffe/Caffe2 ◦ 古豪 ◦ Caffe2からFacebook ◦ インストール・開発困難→Caffe2で改善 ◦ コードが長い ◦ 最速 • Torch7/PyTorch ◦ Facebook ◦ 高速(Caffe並み) ◦ 開発が楽 ◦ 研究者ユーザが多い • TensorFlow ◦ Google製 ◦ 低速 ◦ 学習(Session)に慣れが必要 • Keras ◦ 非常におてがる,初心者の勉強向け ◦ 勉強だけにして早期卒業をお勧め • Chainer ◦ PFN ◦ 日本人ユーザがほとんど ◦ Define by Run ◦ メンテナンスがホット • MatConvNet ◦ MATLABでつかえる ◦ 研究者ユーザが多い • Theano/PyLearn2 ◦ 古豪2 ◦ しらない ◦ 終了のお知らせ
  • 5. Caffe • 古豪 ◦ 使い続ける従来のユーザが多い ◦ でも絶賛人口流出中 • 言語 ◦ C++ベース,Pythonも • 苦行 ◦ インストールが大変? ◦ 初心者には苦行 ◦ 最近はそれほどでもない ◦ Windowsにも素直に入る ◦ コーディングがすごく大変 ◦ 一つのネットワーク組むのに3倍以上コード書かさ れる ◦ 一つのネットワークに複数のファイルを用意する 必要があってつらい ◦ 一線を画すガラパゴス感 • 最速 ◦ すごいはやい ◦ Python系はオーバヘッドがある ◦ 学習速度は正義 ◦ 週オーダが日オーダになれば色々試行錯誤して よりよいものが作れる ◦ 開発系・組み込み系では更に重要 • Caffe2の出現に期待感 • 10年後残る? ◦ Caffe2の頑張りで残ると思われる
  • 6. Caffe2 • FacebookがメンテするCaffeの後継 ◦ Torchとの連携が目論めそう • ネットワーク構築方法が他のフレーム ワークに近くなる,ユーティリティインタ フェースがついた ◦ イマドキな感じで使える かも(未調査) • インストールが辛い ◦ まだWindowsでの安定的なインストール が不能 ◦ Caffeのようにこれから改善する?
  • 7. Torch7 • Facebookが拡張を出してる • Lua ◦ モジュールの中身はC++なので,C++ラッ パーもある • 高速?(Caffe並み?) ◦ arXivの論文によれば. ◦ 実際使ってみると遅いことが… ◦ 「速い」って言ってるスコアが出ない =ビルドが難物? • 開発が楽 ◦ Kerasに毛が生えたレベルで使えるもよう ◦ 有用なモジュールが多数あって便利 • インストールは楽なほう • Windowsへのインストールは絶望レベル に困難 ◦ 一応やりかたはQiitaの記事にまとめました • ヨーロッパの研究者のユーザ人口が多 い? • 再現性が高い ◦ いざPublishされているものを試してみると, 他のものでは同じ値が出てこないが,Torch だとそのまま出てくる • 総じて研究者向け ◦ 開発にも使えるか
  • 8. PyTorch • Facebookがメンテナンスしている • Python • ChainerのForkなので,Chainerとよく似 てる ◦ モジュール名が違うくらい • Define by Run • Python系では最速 ◦ 中身のテンソル計算系などのC++実装が Torchの流用 ◦ データローダが高速 ◦ (本稿では)なぜかTorchよりはやい • インストール,開発が楽 ◦ Windowsでも問題なし • PyTorchに移行するTorchユーザ多い
  • 9. TensorFlow • Google製 ◦ ユーザ人口が最大 ◦ 検索すればやりたいことはほぼ必ず見つかる ◦ 企業ユーザが多い? ◦ シェアは正義 • Python,C++ • 開発が楽 ◦ DNN分かっている人なら,が前につく ◦ 拡張がやりやすい • 低速? ◦ 意外と早い? 安定して最速ビルドを利用できる模様 • 難しい? ◦ 「計算グラフ」で実装する低レベル仕様 ◦ 開発・DNN初心者が触るのは難しいかも ◦ ユーザ多い=初心者・非エンジニア多い ◦ Kerasの吸収で解決するかも • マシン分散がやりやすい ◦ (研究界と比較して)大資産な企業と親 和性が高い • 今後,更に人口が増えるのでは
  • 10. Keras • 「お手軽」が至上のテーマ • すごく簡単 ◦ インストール1行,気にしなくても勝手に GPUで高速化 ◦ コーディングもいちばん簡単 ◦ あらゆる部分がブラックボックス化してい て,もはやプログラミング不要.ただマー クアップするだけ • TensorFlow,Theanoをバックエンドに する ◦ ユーザ的にはほぼTensorFlowが現状か • 開発者が一人 ◦ 状況が変わると開発終了するかも • TensorFlowに吸収され中 ◦ Kerasモジュールがある ◦ しばらくしたら不要になる? ◦ 「TensorFlowは難しい」を払拭する?
  • 11. Chainer • 日本の企業Prefered Networks(PFN) が作っている • Define by Runのさきがけ ◦ 真にRNNを実装可能なパラダイム ◦ 自然言語処理系に強い • DNNをよく知っている必要がありそう • インストール簡単 • DNNはもちろん,様々な機械学習がで きるフレームワークとして成長中 • 機械学習屋が使うのに便利そう • 低速? ◦ 実行時にネットワークをコンパイルする 模様 ◦ 本当に遅いのかちゃんと調べたい
  • 12. MatConvNet • MATLABで使える ◦ MATLAB使ってた研究者にモテモテ • これ自体はフリーで導入も簡単 ◦ Parallel Conputing Toolbox(有料)が必要 • インストール超簡単 ◦ さすが有料なだけあるMATLAB • ネットワーク構築の書き方は独特 • 低速? ◦ 要調査
  • 13. その他 • CNTK ◦ Microsoft様 ◦ 高速,多言語らしい • DyNet ◦ Define by Runだって • MXNet ◦ 高速だって • Deeplearning4j ◦ Javaだって
  • 14. 学習速度比較 0 2000 4000 6000 8000 10000 12000 14000 16000 MNIST_CNN (CPU) 0 1 2 3 4 5 6 7 8 9 10 XOR_MLP (CPU) 0 10 20 30 40 50 60 70 80 90 100 MNIST_CNN (GPU) 0 5 10 15 20 25 30 35 40 45 XOR_MLP (GPU) Ubuntu Windows s/10000epoch s/10000epoch s/12epoch s/12epoch
  • 15. 学習速度比較 • Caffeはやっぱり最速 • TensorFlowは実は速い?PyTorchも速 そう • なぜかTorchが遅い ◦ ビルドのところで揺れがある?=インス トールが鬼門? • Kerasはとりあえず遅い ◦ TensorFlowバックエンドなのに,何してる の? • MatConvNetは遅いかもしれない 調査を続けたい • 実は学習速度≠全体の実行速度 ◦ Chainerはぱっと見遅いが,実はDefine by Runの都合上,ネットワークコンパイ ルも計測時間に含まれてしまっているの で注意. • ビルドのやり方,環境によって実行速 度に差が出る ◦ 速度的に安定したビルドの仕方がな い? • 速度のボトルネック要因 ◦ データセットのロード ◦ ネットワークのコンパイル ◦ メモリの扱い ◦ ループのオーバヘッド? ◦ ネットワークの計算 今回の計測ターゲット
  • 16. 言語で比較 • 基本的にラッパーが出回る ◦ 特にC++のラッパーは多いので使うとき に調査するべき ◦ Caffeモデルに変換してCaffe on OpenCV が個人的にオススメ • C++ ◦ Caffe, TnsorFlow • Lua ◦ Torch • Python ◦ TensorFlow, Keras, PyTorch, Chainer • Matlab ◦ MatConvNet • Java ◦ Deeplearning4j • C# ◦ CNTK
  • 17. 結論 • 折角いろいろあるので,適材適所がよいのでは ◦ あとは宗教 • 下記,メンバーのお勧めです. • 初心者 ◦ Tensorflow/Kerasがよさそうです.実に簡単にNNが構築でき,Web資料も親切なのが多いです. ◦ が,玉石混交なので逆に欲しい情報にたどり着かないことも・・・ ◦ (今のところ)Caffeはいろいろと苦行なのでやめておいたほうが… • 企業エンジニア ◦ プロトタイピングにTensorFlow/Torch,開発にCaffe ◦ 自社開発 ◦ 今からメジャーになるのはまずムリだと思いますが • 研究者 ◦ TensorFlowかPyTorchがオススメ ◦ Chainer vs PyTorch > PyTorchがメジャーとりそうな流れ ◦ Caffeが安定して高速動作するのでその点ではオススメ.難しいけど… • 宗教家 ◦ Java教,Microsoft教,…
  • 19. フレームワーク間移行 • DNNの移行は,ネットワーク構造だけ実装,重みなどのパラメータをコピーする ことでできる • Model Zooに学習済みモデルいっぱいあるので,それ使いまわせるといいよね ◦ 時間がすごくかかる学習はやりたくないよね ◦ というか研究室レベルでは無理の領域に入ってる • コンバータを作る人は多いが,完全網羅はされなそう ◦ 使いたいときはちゃんとできるのか調べる必要がある w00 w01 w10 w11 コピー コピー ネットワーク構造は 先に作る
  • 20. ハイパーパラメータのチューニング • 「最適」の保証は理論的にない • 学習率が一番影響が大きいので頑張って調整しましょう • 探索をやりましょう ◦ グリッド探索 ◦ ベイズ推定 • ネットワーク構造は最大・自動生成不能パラメータ