Chainer: Development Plan
2015/12
Chainer Meetup #1
Seiya Tokui, Preferred Networks
Developtment history
 6/12: v1.0 (first release)
 7/7: v1.1
– Caffe reference model, type checking (forward/backward), Py3
support
 8/19: v1.2 (improvements)
 9/2: v1.3
– CuPy, functions module is reorganized
 10/28: v1.4 (improvements)
 11/25: v1.5
– Link/Chain (modularization), CuPy Cythonized (reduce CPU overhead)
Apologies
 Installation gets complicated since v1.5
– The complication comes from the combination of Cython, h5py, and
old setuptools
– We have started the installation test
– The PyPI package of Chainer is now Cython-free (translated C++
source files are included instead of pyx files)
– We will make h5py support optional in v1.6
Development policy from v1.6
 Decide based on the keywords: Powerful, Flexible, and Intuitive
 The first target users are researchers, students, and practitioners
 Put more efforts on:
– Simple and easy installation on diverse environments (not meaning
various OSes)
– Backward compatibility
– Documentation, tutorials, and examples
New release cycle
 More stable release cycle
– Revision release for each two weeks (same as before)
 Changes not including any interface change
 Bug fixes, performance improvements, test improvements,
document updates, etc.
– Minor release for each six weeks
 Changes with additional interfaces
 New classes, new functions, new arguments, new variables, etc.
 We will keep the backward compatibility as much as possible
– I am writing Backward Compatibility Policy for the next releases
– Will make it public in Jan. 6
Release schedule based on the new cycle
 1.6.0 – Jan. 20
 1.6.1 – Feb. 3
 1.6.2 – Feb. 17
 1.7.0 – Mar. 2
 1.7.1 – Mar. 16
 1.7.2 – Mar. 30
 1.8.0 – Apr. 13
 and so on ……
External libraries support
 NumPy
– 1.10 will be supported from v1.6
 cuDNN
– We want v4 support (#756)
– still keeping v2 support (v2 is not even one year old!!)
 Protobuf (for CaffeFunction)
– We have confirmed that we can support CaffeFunction in Py3 with
protobuf 3.0.0-beta
– We will update the caffe_pb2 script to support it
Future release: v1.6
 On Jan. 20
 Merge bufferred feature PRs
– Dicision will be made based on the “Backward Compatibility Policy”
 Make h5py support optional
– We will add an npz serializer instead
 Support NumPy 1.10
Future release: v1.7
 Profiling and continuous performance checking
– Preparation for optimization attempts in the future
– For both Chainer and CuPy
 Global configurations and debug mode
– The basic framework for managing global configurations of Chainer
– Debug/Release mode based on it
– Debug mode will include: floating point error in CuPy, NaN checking,
users’ debug codes support, type checking, etc.
Possible features in the future (not decided yet!)
 Isolate CuPy
– Make CuPy separate repository and package
– It will make the CuPy development faster, and will encourage non-DL usages of CuPy
 Renewal of tutorials and examples
– Consistent code design and style between examples
– More “modern” introduction to DL with Chainer
 Abstraction of common routines in learning loops
– Data loading, minibatch building, updates, snapshot/suspend/resume, and logging
– Easy-to-use multiprocess learning
– Design is not yet started (sklearn style? Supporting custom data loading routines?)
 More support of Caffe reference models (e.g. chains with converted parameters)
 Official AMI support
 Way to share models within the community (like Model Zoo)

Chainer Development Plan 2015/12

  • 1.
    Chainer: Development Plan 2015/12 ChainerMeetup #1 Seiya Tokui, Preferred Networks
  • 2.
    Developtment history  6/12:v1.0 (first release)  7/7: v1.1 – Caffe reference model, type checking (forward/backward), Py3 support  8/19: v1.2 (improvements)  9/2: v1.3 – CuPy, functions module is reorganized  10/28: v1.4 (improvements)  11/25: v1.5 – Link/Chain (modularization), CuPy Cythonized (reduce CPU overhead)
  • 3.
    Apologies  Installation getscomplicated since v1.5 – The complication comes from the combination of Cython, h5py, and old setuptools – We have started the installation test – The PyPI package of Chainer is now Cython-free (translated C++ source files are included instead of pyx files) – We will make h5py support optional in v1.6
  • 4.
    Development policy fromv1.6  Decide based on the keywords: Powerful, Flexible, and Intuitive  The first target users are researchers, students, and practitioners  Put more efforts on: – Simple and easy installation on diverse environments (not meaning various OSes) – Backward compatibility – Documentation, tutorials, and examples
  • 5.
    New release cycle More stable release cycle – Revision release for each two weeks (same as before)  Changes not including any interface change  Bug fixes, performance improvements, test improvements, document updates, etc. – Minor release for each six weeks  Changes with additional interfaces  New classes, new functions, new arguments, new variables, etc.  We will keep the backward compatibility as much as possible – I am writing Backward Compatibility Policy for the next releases – Will make it public in Jan. 6
  • 6.
    Release schedule basedon the new cycle  1.6.0 – Jan. 20  1.6.1 – Feb. 3  1.6.2 – Feb. 17  1.7.0 – Mar. 2  1.7.1 – Mar. 16  1.7.2 – Mar. 30  1.8.0 – Apr. 13  and so on ……
  • 7.
    External libraries support NumPy – 1.10 will be supported from v1.6  cuDNN – We want v4 support (#756) – still keeping v2 support (v2 is not even one year old!!)  Protobuf (for CaffeFunction) – We have confirmed that we can support CaffeFunction in Py3 with protobuf 3.0.0-beta – We will update the caffe_pb2 script to support it
  • 8.
    Future release: v1.6 On Jan. 20  Merge bufferred feature PRs – Dicision will be made based on the “Backward Compatibility Policy”  Make h5py support optional – We will add an npz serializer instead  Support NumPy 1.10
  • 9.
    Future release: v1.7 Profiling and continuous performance checking – Preparation for optimization attempts in the future – For both Chainer and CuPy  Global configurations and debug mode – The basic framework for managing global configurations of Chainer – Debug/Release mode based on it – Debug mode will include: floating point error in CuPy, NaN checking, users’ debug codes support, type checking, etc.
  • 10.
    Possible features inthe future (not decided yet!)  Isolate CuPy – Make CuPy separate repository and package – It will make the CuPy development faster, and will encourage non-DL usages of CuPy  Renewal of tutorials and examples – Consistent code design and style between examples – More “modern” introduction to DL with Chainer  Abstraction of common routines in learning loops – Data loading, minibatch building, updates, snapshot/suspend/resume, and logging – Easy-to-use multiprocess learning – Design is not yet started (sklearn style? Supporting custom data loading routines?)  More support of Caffe reference models (e.g. chains with converted parameters)  Official AMI support  Way to share models within the community (like Model Zoo)