Chainer v2.0.0 and our future development plans

We have released Chainer v2.0.0 today! This is the first major update of Chainer. The detailed updates from the beta release can be found in the release notes. You can also find the differences between v1 and v2 in the Upgrade Guide. Note that the repository has been moved to chainer/chainer. Any access to the old URL (including Git operations) will automatically be redirected to the new one.

This update breaks the backward compatibility. We made many improvements in the API that could not be done without breaking the compatibility. The important changes that may affect user code are summarized in the Upgrade Guide. We strongly recommend users to read through this guide (at least the sections related to features that you are using) to upgrade your Chainer code from v1 to v2. We hope that programming with Chainer will be made much easier and more comfortable with this update.

In addition to the API changes, the performance is also improved in this version. For example, the memory consumption is greatly reduced, e.g. 33% reduction in ResNet. The type-checking code is made much faster, and there is now no need of disabling it in most cases.

We also have recently released some add-on packages built on top of Chainer. These are not a part of Chainer v2, but it is a good time to introduce them.

  • ChainerRL makes it easy to try and implement deep reinforcement learning methods using Chainer.
  • ChainerMN reduces training time by scaling up to multiple machines with only minor changes to user code.
  • ChainerCV provides a toolkit for computer vision applications for Chainer.

We hope that the new version features and performance improvements, combined with these packages, will help researchers and practitioners in various fields be more productive and speed up their research activities.

Since the first release of Chainer v1.0.0 two years ago, many users have been contributing to the development as well as to the community (for example, according to the list of contributors shown at GitHub, 115 people including our team added changes to our repository). We greatly appreciate their help, without which we cannot survive in this age of deep learning framework wars.

Now, as the core team, we have to start the development of the next version. Since this is our first experience on making a major update, we ourselves learned many things from it. For example, it took too much time to make the major version. We also missed getting some features in that are critical for some researchers (the currently most critical one is the higher-order differentiation, which we are planning to include in the next major version). Based on this experience, we have decided to change our development and release cycle as follows.

  • We will release a major version each four months. This change enables us to support cutting-edge research more quickly.
  • Instead of releasing a minor version, we will make a pre-release of the upcoming major version each month. Any changes that add new features or change the existing API should be included in these pre-releases.
  • The development of the pre-releases (alpha, beta, and release candidates) are done in the master branch.
  • The development of the stable releases (major and revision updates) are done in the versioned branches named like v2, v3, etc.

The detailed explanation can be found in Contribution Guide. Anyone who are currently contributing or planning to contribute to Chainer are strongly recommended to read this document again.

We will continue working to improve Chainer so that more and more researchers and practitioners can perform their research and analyses as quickly and efficiently as possible.

About Chainer

Chainer is a Python-based, standalone open source framework for deep learning models. Chainer provides a flexible, intuitive, and high performance means of implementing a full range of deep learning models, including state-of-the-art models such as recurrent neural networks and variational autoencoders.

Recent Posts