@beam2d beam2d released this Jun 1, 2017 · 13559 commits to master since this release

Assets 2

This is the second major version. See the list for the complete list of solved issues and merged PRs (the list only shows the difference from v2.0.0b1; see the Release Note section below for the difference from v1.24.0).


  • CuPy has been separated from Chainer into an independent package: CuPy.
    • It means you need to install CuPy if you want to enable GPU for Chainer.
    • Following this installation guide is recommended to enable GPU.
  • Related to the CuPy separation, we cut the support of some old versions of CUDA and cuDNN. The following versions will be supported in Chainer v2.0.0 and CuPy 1.0.0.
    • CUDA 7.0 or later
    • cuDNN 4.0 or later
  • The repository of Chainer is moved from pfnet/chainer to chainer/chainer. The old URL can be used by git, with which any operations will be redirected to the new one.
  • For Chainer v1.x Users:
  • For contributors:
    • We strongly recommend you to read the Contribution Guide again, which contains many updates.
    • As is explained in the Contribution Guide, we have changed the development and release cycle.
      The main development will be continued on the master branch, which will correspond to the next pre-releases of v3 (including alpha, beta, and RC). The maintenance of v2 will be done at v2 branch.
    • If you want to send a pull request, please send it to the master branch unless you have a special reason.

Release Notes

It should be noted that these release notes contain only the differences from v2.0.0b1. See the release notes of v2.0.0a1 and v2.0.0b1 to confirm the full set of changes from v1.

New Features and Changed APIs

  • Add L.StatelessGRU and change the implementation of L.GRU (#2769)
  • Make input size/channels optional (#2159, #2045)
  • Aggressive Buffer Release (#2368, #2586 (thanks @anaruse!))
  • Related to the buffer release, the following functions release inputs:
  • chainer.config.cudnn_deterministic: cuDNN Deterministic mode (#2574, #2710)
  • Remove wscale option from L.MLPConvolution2D (#2690)
  • Add new APIs of parameter/link registration to Link/Chain (#1970, #2657)
  • Purge the graph when reporting a variable (#2054, #2640)
  • Add Extension.initialize and remove invoke_before_training (#2639, #2611)
  • Make None serializable (#2638)
  • Raise an error when an obsolete argument is given (#2556)
  • Use cleargrads instead of zerograds by default (#2521, #2549)
  • Fix the inconsistent naming convention between LSTM and GRU (#2285, #2510, #2537)
  • Add requires_grad property to Variable (#2493)
  • Support numpy like repr function of Variable (#2455, thanks @fukatani!)
  • Clean APIs of L.Linear and convolution-like links related to the bias argument (#2180, #2185)
  • Remove deprecated methods of Optimizer (#2509, #2404)
  • Make bias vector enabled by default in L.ConvolutionND and L.DeconvolutionND (#2018)


  • Remove unnecessary imports from functions and links (#2755)
  • Check old arguments which are not supported in v2 to show an error message. (#2641)
  • Raise an error when the volatile flag is given (#2718)

Bug fixes

  • Fix a bug of Hyperparameter on deep copy (or, strictly speaking, on unpickling) in Py3.6 (#2761)
  • Fix Copy.backward to check input device (#2668)
  • Fix AlexFp16 example (#2637)
  • Fix VariableNode to add creator setter (#2770)
  • Fix for the environment without cuDNN (#2790)
  • Check h5py version when serializing None (#2789, #2791)
  • Fix the initial weight of EmbedID (#2694, thanks @odanado!)
  • Fix DebugPrint extension to support removed inputs (#2667)

The following PR has been sent to v1.24.0 and merged but we mistakenly failed to add this PR to the previous release note, so now we list this up here and appreciate @himkt for the contribution!

  • Fix a bug in chainer.datasets.split_dataset_random (#2613, thanks @himkt!)


  • Fix the location of get_device_from_id and get_device_from_array (#2759)
  • Remove unnecessary sentence from L.Convolution2D (#2757)
  • Improve doc of F.softmax (#2751, thanks @tma15!)
  • Write the Upgrade Guide (#2741)
  • Fix documentation errors (#2760)
  • Update the Installation Guide for v2.0.0 (#2729)
  • Renew the readme (#2692)
  • Remove an obsolete document in L.DilatedConvolution2D (#2689)
  • Remove use_cleargrads from tutorial (#2645)
  • Fix a mistake in grammar (#2571, thanks @soramichi!)
  • Update API Compatibility Policy (#2778)
  • Remove the license for CuPy (#2786)
  • Update the Contribution Guide (#2773)
  • Update the tutorial (#2762)
  • Fix several typos in tutorial (#2737, thanks @PeterTeng)



  • Remove unused parameter/serialization in test_manual_schedule_trigger.py (#2568, thanks @Hakuyume!)