@kmaehashi kmaehashi released this Apr 17, 2018 · 356 commits to v4 since this release

Assets 2

This is a major release of Chainer v4.0.0. All the updates from the previous major version (v3.5.0) are found in the release notes below:

Summary of v4 update

  • Major Performance Improvements
    • Support iDeep backend for acceleration on Intel CPUs. We observed that the GoogLeNet inference with batch size 1 is made x8.9 faster (compared to the case without iDeep, both on Intel(R) Xeon(R) CPU E5-2623 v3 @ 3.00GHz with MKL).
    • Support cuDNN convolution autotuning
  • Better FP16 training support
    • TensorCore
    • Loss scaling
  • Caffe export support (experimental)
  • NCCL2 support

See the blog post for the details. Also see the Upgrade Guide for users migrating from Chainer v3 to v4.

Updates from the release candidate are as follows.

New Features

  • Support double-backprop in forget function (#4522)
  • Implement Variable.xp (#4536)
  • Add Sequential class for easy model definition of a single-stream computational graph (#4601)
  • Add extension to kill training when NaN or Inf is detected (FailOnNonNumber) (#4602)
  • Implement interface to print runtime information (#4613)
  • Implement Caffe export (#4621)

Enhancements

  • Support deserializing into array of different dtype (#4529)
  • Support dilated convolution on iDeep backend (#4540, thanks @LuoYuanke!)
  • Optimize depth2space & space2depth funcs by reducing operations (#4590, thanks @ruimashita!)
  • Avoid mutable default arguments (#4600)
  • Improve chainer.utils.argument exception message (#4615)
  • Removed redundant member variables (#4627)

Bug Fixes

  • Remove eps from batch normalization statistics (#4517)
  • Call FunctionHooks in chainer.grad (#4541)
  • Fix group argument of {de,}convolution_2d to keyword-only argument. (#4573)
  • Fix to_intel64 not updating VariableNode.data (#4597)
  • Fix to_intel64 to check if it is suitable for iDeep (#4598)
  • Fix seq2seq example ignoring limitation for target length (#4617)
  • Save snapshot in the OS default permission (#4618, thanks @belltailjp!)
  • Fix docstrings of Sequential class (#4628)

Documents

  • Document arithmetic special functions (#4515)
  • Fix debug mode documentation (#4519)
  • Add document on using iDeep (#4520)
  • Fix order of items in Reference section (#4526)
  • Improve docs for supported operators in Variable (#4527)
  • Improve docstring of CTC (#4531)
  • Improve description of Extensions (#4561)
  • Fix a typo (#4570)
  • Add upgrade guide for optimizer_hooks namespace (#4571)
  • Fix docs in {convolution,deconvolution}_2d (#4575)
  • Fix typo (#4576, thanks @Hakuyume!)
  • Fix document in EarlyStoppingTrigger (#4584, thanks @mori97!)
  • Add document for chainer.config.lazy_grad_sum (#4585)
  • Improve docstrings about axis of Caffe functions (#4603)
  • Improve docs of get_device_from_array (#4624)
  • Fix docstrings of Sequential (#4628)
  • Add FAQ for MultiprocessIterator + OpenCV problem (#4629)

Installation

  • use --no-cache-dir in Dockerfile (#4535)
  • Fix installation order of hacking (#4609)

Examples

  • fix seq2seq example ignoring limitation for target length (#4617)

Tests

  • Travis test against v4 branch (#4518)
  • Fix doctest (#4521)
  • Simplify TestSoftmaxCrossEntropyInvalidReduce in test_softmax_cross_entropy (#4579)
  • Fix installation order of hacking (#4609)
  • Fix and simplify TestForwardConsistency in softmax_cross_entropy (#4626)