狠狠撸

狠狠撸Share a Scribd company logo
担当:丹野 良介
Chainerとは
l ?本のPreferred	Networks(PFN)から無償で
公開されているDLのツール
l Chainerの特徴
– Pythonのスクリプトとして記述
– 様々なNNの構造に対応
– ネットワーク構造を直感的で分り易く記述
– GPUサポート,マルチGPUで学習も可
2
Chainerのインストール
l pip	install	chainer
l 依存ライブラリ(最?要件)
– Python2.7以上
– numpy1.9,	1.10
– Six	1.9
l CUDAサポート:6.5,7.0,7.5
– 追加依存ライブラリ:filelock,	g++	4.8.4+
l cuDNN:v2,	v3,	v4
l 詳しくは,Chainer公式リファレンス
– http://docs.chainer.org/en/stable/install.html
3
Variableオブジェクト
l 計算グラフのデータノード
l NumPyもしくはCuPyの多次元配列を保持
l 多くのFunctionは配列の最初の軸をミニバッ
チとして扱う
– 下のxは,20次元ベクトルが10個?ったミニバッチ
としてみなす
x=Variable(np.zeros((10,20),	 dtype=np.float32)
x.data #Variableが格納している配列へアクセス
4
Functionオブジェクト
l パラメータなし関数
l chainer.functions(以降F)に?々定義
– F.relu,	F.max_pooling_2d,	F.lstm,	…
l Functionの呼び出し結果が,再びVariableになる
l 損失関数もFunctionの1つ
x=Variable(…)
y=F.relu(x)	#yもVariable
5
Linkオブジェクト
l パラメータ付き関数
l Linkの持つパラメータは
– Optimizer(後述)の最適化の対象
– シリアライザでsave/loadができる
l chainer.links(以降L)に?々?意
– L.Linear,	L.Convolution2D,	L.EmbedID,	…
l Linkの呼び出し結果が,再びVariableになる
l 多くのLinkには対応するパラメータなしのFunctionが存在する
– 例:LinearLinkとLinearFuction
– 内部で対応するFunctionを利?している
6
Chainオブジェクト
l Linkをまとめるオブジェクト
l Chain??がLinkを継承しているので,Linkを階層的に扱える
l Chainを継承したモジュールは再利?をしやすくなる
model=Chain(embed=L.EmbedID(10000,	100),
layer1=L.Linear(100,	100),
layer2=L.Linear(100,	10000))
x=Variable(…)
h=F.relu(model.layer1(model.embed(x)))
y=model.layer2(h)
7
Optimizerオブジェクト
l Backwardにより計算できた勾配を?いて,
パラメータを最適化する
l chainer.optimizersに定義されている
l 実装されている最適化法
– SGD,	MomentumSGD,	AdaGrad,	RMSprop,
– RMSpopGraves,	AdaDelta,	Adam
8
多層パーセプトロン(デモ)
Chainerによる学習
9
畳み込みNN(デモ)
Chainerによる学習
10
CAFFEの学習済みモデルのイン
ポート(デモ)
11

More Related Content

【2016年度】勉强会资料冲颁丑补颈苍别谤