Skip to content
Compare
Choose a tag to compare

v7.0.0b2

Pre-release
Pre-release
@hvy hvy released this
· 2835 commits to master since this release
7c38f19
Compare
Choose a tag to compare

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

Highlights

ChainerX has several new backproppable ops such as ELU and softplus activation functions and loss functions including absolute error, squared error, Huber loss and Gaussian KL divergence. ChainerX is also supported in all OptimizerHooks when used through Chainer. TabularDataset has also been improved with new features.

Changes without compatibility

  • Variable.grad getter now raises an error when it is called before calling cleargrad, zerograd, or setting the gradient directly. (#7146)
  • Moving average statistics of BatchRenormalization (usage of epsilon) is fixed. It affects the inference behavior. (#7202)
  • Deprecated communicators in ChainerMN have now been removed. Those include HierarchicalCommunicator, SingleNodeCommunicator and TwoDimensionalCommunicator and are no longer necessary as NCCL now supports inter-node communication. (#7697)

New Features

Enhancements

  • Avoid mutable default arguments (#4822)
  • Set initial top_data as -np.inf and argmax_data as -1 in F.roi_max_pooling_2d (#6237, thanks @knorth55!)
  • Add a flag to detect access to grad before calling cleargrad (#7146)
  • Add fp16 support to collective functions (#7456)
  • Call chainerx.grad from chainer.grad (#7464)
  • Use abseil to print stacktrace when signal is raised in ChainerX (#7502)
  • Emit build info of ChainerX and stop hiding ImportError (#7518)
  • Avoid chainerx implicit type conversions (#7520)
  • Make device argument a keyword only argument. (#7537, thanks @kshitij12345!)
  • Support ellipsis in Array::At and __getitem__ (#7561)
  • Introduce chainerx.ndarray._is_chained (#7565)
  • Remove squared_difference and fix docs (#7582)
  • Avoid code duplication in optimizer hook implementation (#7592)
  • Refactor allreduce_grad() and functions related with it (#7604)
  • Raise python IndexError if the index __getitem__ takes is out of bounds (#7614)
  • Use six.integer_types for axis check in F.concat (#7632, thanks @knorth55!)
  • Fix optimizer_hooks.GradientClipping for ChainerX (#7641)
  • Replace optional-lite with abseil (#7646)
  • Make devices hashable (#7648)
  • Fix optimizer_hooks.GradientHardClipping for ChainerX (#7656, thanks @kshitij12345!)
  • Implement IntervalTrigger.__str__ (#7664, thanks @ktns!)
  • GradientLARS optimizer hook working with ChainerX (#7669)
  • Use absl::Span and related helpers instead of gsl::span (#7671)
  • Added chainerx support on initializers (#7687)
  • Delete deprecated communicators (#7697)
  • Use six.integer_types for axis checks (#7713)
  • Require CUDA if CHAINERX_BUILD_CUDA is set (#7752)

Bug Fixes

  • Skip None array in FunctionNode NaN check (#6283)
  • Fix unit selection of CupyMemoryProfiler (#7003)
  • Exclude eps from running_var of F.batch_renormalization (#7202)
  • Fix pickling issues on MultiprocessIterator (#7486)
  • Fix initializers.Identity for ideep backend (#7548)
  • Fix a bug of chainermn.links.create_mnbn_model (#7603)
  • Fix PickleDataset crash when using multiprocessing (#7625, thanks @zaltoprofen!)
  • Fix AMSGrad with intel64 backend (#7661)
  • Fix an error on chainer.grad for multiple devices (#7692)
  • Fixes spectral normalization chainerx conversion (#7698)
  • Fix offset in chainerx::Flip (#7727)
  • Fix reporter for multi-thread use (#7731)
  • Fix Parameter.dtype for uninitialized parameter (#7735)
  • Fix UpdateRule.use_fp32_update for uninitialized parameter (#7736)

Code Fixes

  • Use backend.get_array_module not cuda.get_array_module (#7514, thanks @crcrpar!)
  • Make squared_difference alias of squared_error (#7547)
  • Avoid code duplication and access violation between Optimizer and GradientMethod (#7585)
  • Use chainerx.clipped_relu in F.clipped_relu (#7588)
  • Use old syntax to suppressing warning in ChainerX (#7615)
  • Rename split functions in pybind implementation (#7617)
  • Cleanup CMakeList.txt (#7647)
  • Fix flake8 error (#7663)
  • Avoid else after return (#7666)
  • Use curly braces for constructors (#7667)

Documentation

  • Improve contribution docs (#6492)
  • Explain corresponding Links (#6512)
  • Fix inconsistent document for extension finalizer (#7557)
  • Document CHAINERX_CUDNN_USE_CUPY (#7574)
  • Fix typos in ResNet prepare method (#7577)
  • Tiny fix of BackwardContext comment (#7595, thanks @crcrpar!)
  • Fixes typos in expand_dims.py (#7602)
  • Remove moved comment (#7607)
  • Correct missing parenthesis in documents (#7611, thanks @tinunkai!)
  • Minor grammar Improvements to broadcast documentation. (#7621)
  • Edits FunctionNode docs. (#7622)
  • Fix a typo in chainer/functions/math/average.py (#7653, thanks @ktns!)
  • Fixes a grammar error (#7658)
  • Fix typo in F.squeeze documentation (#7682)

Examples

  • Support default dtype in sentiment example's recursive minibatch version (#7438)
  • Warn NaN in FP16 mode in sentiment example's recursive minibatch version (#7447)
  • Fix typo in examples/vae/train_vae.py (#7578, thanks @m4saka!)
  • Example fix: stateful triggers cannot be reused (#7665)

Tests

  • Simplify F.polygamma test (#6970, thanks @ishanrai05!)
  • Simplify F.cast test (#7034)
  • Refactor optimizer test for multi-backend (#7590)
  • Fix y_shape not used in tests (#7610)
  • Test optimizer_hooks.Lasso for ChainerX (#7657, thanks @kshitij12345!)
  • Fix GroupNormalization tests (#7684)
  • Test optimizer_hooks.GradientNoise for ChainerX (#7709, thanks @kshitij12345!)
  • Fix warning filter for protobuf (#7715)
  • Test optimizer_hooks.WeightDecay for ChainerX (#7716, thanks @kshitij12345!)
  • Relax atol/rtol of chainerx.erf float16 test (#7721)
  • Fix flaky TestHuberLoss (#7723)
  • Reverse input array for non-contiguous tests (#7728)
  • Fix eps in Contrastive.backward (#7745)
  • Fix flaky TestContrastive (#7747)

Others

  • Update pybind version (#7559)
  • Avoid relative paths in third-party.cmake (#7643)