狠狠撸

狠狠撸Share a Scribd company logo
Chainer v1.6からv1.7の新機能
2016/03/18 Chainer Meetup #02@ドワンゴ
(株)Preferred Networks
奥田 遼介
自己紹介
奥田 遼介
? -2014東北大学 修士
? 文字列処理など
? 2014 (株)プリファードインフラストラクチャー
? 2014- (株)プリファードネットワークス
? チーフアーキテクト
? 映像解析系、製造業系にかかわる研究開発
? ChainerやCuPyの開発
最新版v1.7.1
(2016/3/15)
2/18
前回のChainer Meetup #01(2015/12/19)
からのアップデート
? 2016/1/19 v1.6.0
? 2016/2/ 3 v1.6.1
? 2016/2/17 v1.6.2
? 2016/3/ 1 v1.7.0
? 2016/3/15 v1.7.1
? マイナー2回
? リビジョン3回
3/18
Issue/PRの統計
0 20 40 60 80 100 120
v1.6.0
v1.6.1
v1.6.2
v1.7.0
v1.7.1
v1.6.0 v1.6.1 v1.6.2 v1.7.0 v1.7.1
feature 30 22
bug 25 14 2 4 7
enhancement 14 7 6 7 2
install 3 3 1 3
test 20 2 8 3 4
document 10 6 5 8 7
example 2 1 3 1
4/18
互換性ポリシーの作成 v1.6.0
? 互換性のポリシーを作りました (#829)
? メジャー :不定期
? 後方互換性のない変更を含む
? マイナー :6週間ごと
? 新機能の追加
? 後方互換性は維持する
? リビジョン :2週間ごと
? バグ修正
? ドキュメントに基づいた互換性維持
? 互換性はドキュメントに書かれた内容に従って維持されます
5/18
新しいコア機能
? デバッグモードの導入(#899)
? forward/backwardの値のNaNチェックなどを行う
? softmax_cross_entorpyではlabelの範囲チェックも
? 有効にするとオーバーヘッドがあります
? ファンクションフックの追加(#933)
? forward/backward の呼び出し時にフックを仕掛けることが可
能になった
? Variable.debug_printメソッドの追加(#830)
? data とgradについて、device ID, shape, dtype 統計情報を表
示
6/18
デバッグモード
? chainer.set_device(True)で使えます
? NaNの検出デモ
In [1]: import chainer, numpy
In [2]: chainer.set_debug(True)
In [3]: x = chainer.Variable(numpuy.array([float(‘nan’)], ’f’))
In [4]: chainer.functions.identity(x)
-----------------------------------------------------------
RuntimeError Traceback (most recent call last)
<ipython-input-4-e234ae95dfb6> in <module>()
----> 1 chainer.functions.identity(x)
=========省略=========
RuntimeError: NaN is detected on forward computation
7/18
ファンクションフック
? 例えば時間を測るフックが作れます:TimerHook
In [1]: import chainer, chainer.function_hooks, numpy
In [2]: h = chainer.function_hooks.TimerHook()
In [3]: link = chainer.links.Linear(5, 5)
In [4]: with h:
...: link(chainer.Variable(numpy.zeros((3, 5), 'f')))
...:
In [5]: print(h.total_time())
0.011421918869
In [6]: print(h.call_history)
[(<chainer.functions.connection.linear.LinearFunction object
at 0x7fb18d9ff790>, 0.011421918869018555)]
8/18
Variable.debug_print
? debug_print()を呼ぶだけ
In [1]: import chainer, numpy
In [2]: d = numpy.random.uniform(-1, 1, (3, 5)).astype('f')
In [3]: x = chainer.Variable(d)
In [4]: print(x.debug_print())
<variable at 0x7fac1017a790>
- device: CPU
- volatile: OFF
- backend: <type 'numpy.ndarray'>
- shape: (3, 5)
- dtype: float32
- statistics: mean=-0.02048243, std=0.46310186
- grad: None
9/18
新しい関数(Chainer)その1
? activation
? elu (#754)
? log_softmax (#842)
? maxout (#856)
? slstm (#518)
? LSTM along binary trees
? array
? broadcast_to (#826)
? expand_dims (#690)
? evaluation
? binary_accuracy (#757)
? Accuracy for binary classification.
10/18
新しい関数(Chainer)その2
? math
? batch_l2_norm_squared (#828)
? det, batch_det (#613)
? matrix determinant
? inv, batch_inv (#608)
? Differentiable matrix inversion
? pool
? unpooling_2d(#599)
? spatial upsampling
? Link
? StatefulGRU (#817)
? GRU with LSTM chain-like interface
? Maxout (#856)
11/18
関数の機能拡張(Chainer)
? fixed_batch_normalization (#798)
? Backward をサポート
? sigmoid_cross_entropy (#790)
? ignore_label をサポート
? ctc_padding(#689)
? 異なる長さのシーケンスからなるミニバッチをサポート
12/18
新しい関数(CuPy)
? asfortranarray(#923)
? fortranオーダーにする
? broadcast_to (#644)
? NumPy 1.10からの新機能
? roll (#827)
? くるくる回す
13/18
NumPyシリアライザの追加
? NumPy NPZ シリアライザが追加されました (#810)
? これまでのシリアライザと同じく使えます
? save_npz(filename, obj, compression=True):
? NPZは、numpyの配列1個が1ファイルとなっているものを集め
たzipファイルです。
? h5pyのインストールがオプショナルに
? hdf5が不要になり、インストールが簡単に
14/18
Python関係
? インストールを安定化させました
? 依存ライブラリの削減
? h5py をオプショナルに
? セットアップ時のNumPy依存をなくす
? setuptoolsやpipとの長い戦い
? NumPy 1.10サポート
? Chainer,CuPy共に最新版のNumPyに対応
? 注意
? ChainerはPython3.5.0では動きません。Python3.5.1を使って
ください
15/18
CUDA関係
? cuDNN v4対応 (#838 #756)
? v2からv4すべてのライブラリに対応しました
? まだ一部最新の関数を使わないコードのままです
? PRお待ちしております
? Device-to-device copy時のGPUDirect使用 (#884)
? 特定条件下でGPU間でのメモリ速度が向上しました
? ホストメモリの経由がなくなった
16/18
そのほか
? 沢山の改善が行われました
? 詳しくはRelease noteを見てください
? https://github.com/pfnet/chainer/releases
17/18
さいごに
? PRありがとうございます (敬称略)
? @cemoody @hrantzsch @jnishi @jnory
? @kashif @muupan @sinhrks @t-abe
? @wkentaro
? 皆様のPRをお待ちしております
? Chainer開発アルバイトに興味ある人はぜひ声をかけて
ください
18/18

More Related Content

Chainer v1.6からv1.7の新機能