Pre-release
Pre-release

@hvy hvy released this Dec 3, 2018 · 265 commits to master since this release

Assets 2

This is the release note of v6.0.0b1. See here for the complete list of solved issues and merged PRs.

Highlights

ChainerX

ChainerX is an ndarray implementation with Define-by-Run automatic differentiation capability. It roughly corresponds to "NumPy/CuPy + Chainer Variable", while some additional features follow:

  • Speed: The whole ndarray and autograd implementation is written in C++, with a thin Python binding. It lowers the overhead existing in the pure Python implementation of Chainer.
  • Extensibility: The backend is pluggable so that it is much easier to add support of new devices.

The speed is best achieved by directly using ChainerX APIs,
while it also provides a compatibility layer through the conventional Variable interface for easier adoption of ChainerX in existing projects.
See the ChainerX Tutorial for more details and concrete examples.

New Features

  • Implement double backward of SLSTM function (#4824, thanks @tohmae!)
  • Add F.roi_max_align_2d (#5198, thanks @knorth55!)
  • Add F.roi_average_pooling_2d (#5285, thanks @knorth55!)
  • Add F.roi_max_pooling_2d (#5304, thanks @knorth55!)
  • Support all float dtypes in F.negative_sampling (#5336)
  • Add D.Chisquare (#5338)
  • Add D.Gumbel (#5352)
  • Add D.Poisson (#5364)
  • Add D.OneHotCategorical (#5372)
  • Serialize BestValueTrigger (#5402, thanks @ktns!)
  • Add return_samples argument to F.negative_sampling and L.NegativeSampling (#5597)
  • Support all float dtypes in F.embed_id (#5624)
  • Support default dtype in L.BlackOut (#5638)
  • Support default dtype in L.BinaryHierarchicalSoftmax (#5648)
  • Support all float dtypes in F.connectionist_temporal_classification (#5680)
  • ChainerX (#5725)

Enhancements

  • Add type compatibility check in npz deserializer (#5483)
  • Use cupy.linalg.det in F.det (#5525)
  • Avoid unnecessary copy in ndarray.astype (#5547)
  • Avoid cuDNN handle around DropoutStates (#5563)
  • Simplify softmax with cuDNN (#5566)
  • Simplify pooling with cuDNN (#5567)
  • Add KL divergence test for D.OneHotCategorical (#5587)
  • Add compute_stream argument in ConcatWithAsyncTransfer to allow more overlap between computation transfer in CUDA (#5606, thanks @anaruse!)
  • Use chainer.utils.size_of_shape in ChainerMN (#5610)
  • Import testing/backend.py definitions in testing/__init__.py (#5633)
  • Avoid using dype char codes (#5646)
  • More consistent use of Variable.array in codes under links (#5657, thanks @crcrpar!)
  • Use automatic broadcasting instead of F.repeat (#5662)
  • Refactor the statemachine of iterators that iterates indices (#5669, thanks @grafi-tt!)
  • Refactor train_mnist_dual_parallel.py (#5678)
  • Change Link.add_hook to return self (#5736, thanks @crcrpar!)

Bug Fixes

  • Fix reporter.Summary float value deserialization (#5482)
  • Fix text_classification example fails on Python 3 (#5591, thanks @koreyou!)
  • Improve iDeep version checking (#5600)
  • Fix D.OneHotCategorical (#5604)
  • Fix Python 3.7 test failures in F.roi_average_pooling_2d (#5611)
  • Fix F.negative_sampling output dtype in CPU mode (#5613)
  • Fix args check in F.roi_average_align_2d and F.roi_average_pooling_2d (#5627, thanks @knorth55!)
  • Fix L.BatchNormalization with lazy initialization fail on GPU (#5683, thanks @koreyou!)

Documentation

  • Simplify array type information fields in function documentation (#4887)
  • Update installation guide of numpy with openblas on macOS (#5021)
  • Add links to ChainerCV documentation (#5434)
  • Add ChainerMN paper to references (#5570)
  • Fix docstring of F.forget (#5586, thanks @fiarabbit!)
  • Fix typo in updaters (#5589, thanks @okayu9!)
  • Fix extensions guide error regarding method to implement (#5602, thanks @lehy!)
  • Update F.roi_average_align_2d doc to refer wrapper function (#5609, thanks @knorth55!)
  • Fix a typo in Chain example code (#5653)
  • Fix typo in F.max_pooling_nd docstring (#5654)
  • Fix a typo in chainer.distributions documentation (#5658)
  • Add documentation of ndarray (#5660)
  • Fix typo in L.ResNetLayers (#5665, thanks @takaaki82!)
  • Minor typo correction (in docs/variables). (#5670, thanks @grigorisg9gr!)
  • Fix typo in docstrings (#5676)
  • Fix docs for backprop_step (#5692)
  • Make docs in chainer.distributions refer ndarray (#5717)
  • Fix image URL in README (#5720, thanks @levelfour!)
  • Add warning in ChainerX documentation (#5752)

Installation

  • Require setuptools and add docs for (#5532)

Examples

  • Add WaveNet example (#4922, thanks @dhgrs!)
  • Rewrite the example of VAE using Chainer distributions (#5356, thanks @ganow!)

Tests

  • Fix test warnings in NumPy 1.15 (#5596)
  • Fix test of F.rrelu (#5618)
  • Fix regex of protobuf modules warned by Python 3.7 (#5642)
  • Ignore h5py warning in Python 3.7 (#5691)
  • Add gradient consistency checks in numerical_grad (#5698)

Other

  • Update style check tools to the versions compatible with pycodestyle 2.4 (#5643)