7. üconstructing NNs as a Python programming
üdynamic NN construction
üCPU/GPU agnostic code with CuPy
7
Mission
Speed up research and development of
deep learning and its applications.
Features
Flexible and intuitive description of complex NNs by
http://chainer.org
*NN = Neural Network
9. f g
x f g
Static
graph
construction
Data feed
x yf zg
Dynamic
graph
construction
Define-And-Run
(Most frameworks)
Define-By-Run
(Chainer)
9
x yf
x
z
Static Dynamic
Optimization ✓ △
Flexibility △ ✓
13. Chainer v2
• First major version up that breaks backward compatibility.
• Important features (almost fixed)
• CuPy separation
• Unified configuration (chainer.config, esp. train mode)
• train argument is removed from many functions
• Variable updated: Parameter class, uninitialized var, volatile removed
• Funcion.retain_inputs and retain_outputs to reduce memory usage
• New-style parameter/child link registration (just setting them as an attribute)
• UpdateRule customized for each parameter
• Extention.initialize added, invoke_before_training removed
• No duplicated memory between training graph and evaluation graph
• Input size is made optional in many links (L.Linear(100))
• wscale option is removed from many links
13
Will release on May 30th 2017
14. Libraries on top of Chainer
ChainerRL (beta): Reinforcement learning
ChainerMN (v0.1.0): Multi-node distributed learning
ChainerCV (v0.4.5): Computer vision
17. ChainerCV
17
ü Dataset Wrapper For well-known CV datasets (CUB, Pascal VOC)
ü Dataset transformer (random crop, random flop)
ü Implements typical workflow in CV
21. NumPy-like API accelerated with CUDA
# CPU
x_cpu = numpy.array([1, 2, 3])
l2_cpu = numpy.linalg.norm(x_cpu)
# GPU
x_gpu = cupy.array([1, 2, 3])
l2_gpu = cupy.linalg.norm(x_gpu)
CuPy will be an independent project from Chainer from Chainer v2.
>150 NumPy functions are supported
22. Development team (as of May 2017)
• Chainer, CuPy
• Core development team: approx. 10 members
• Reviewer team: approx. 10 members
• Chainer user group: approx. 5 members
• Chainer RL, Chainer MN, Chainer CV: 2, 3 members for each
• Paints Chainer: approx. 10 members
22
* some members overlap
25. Community activities
25
Chainer meetup (#0 - #4)
#5 will be held in June 10th 2017
Deep learning mini course @UCSF
application for biology
Google group (ja, en), Slack (ja, en), Twitter (ja, en)
26. Conclusion
• Chainer is a Python-based deep learning framework that
leverages flexible and intuitive description of NNs.
• Many libraries and services are being developed on top of
Chainer (ChainerRL/MN/CV, PaintsChainer, PonanzaChainer,
CuPy).
• Introduced the development and the user-group teams of
Chainer
26
27. Try Chainer ! http://chainer.org
27
Seiya
Tokui
Kenta
Oono
Yuya
Unno
Ryosuke
Okuta
Chainer core development team
Brian
Vogel
Gentaro
Watanabe
Shunta
Saito
Daisuke
Nishino
and many
contributors !
Contact: oono@preferred.jp
Google Group: Chainer User Group