v4.0.0b1
Pre-release
Pre-release
This is the release of v4.0.0b1. See here for the complete list of solved issues and merged PRs.
Spotlight features
- A lot of new double-backpropable functions have been added.
- Dilated convolution got much faster by supporting cuDNN v6’s dilated convolution function.
- Autotuner for cuDNN convolution functions is now available. Just add this one line
chainer.global_config.autotune = True
for optimizing your ConvNets. - A new example of linear-chain CRF has been merged . See https://github.com/chainer/chainer/tree/master/examples/pos
Changes without compatibility
- Use a distinct RandomState in the prefetch thread of MultiProcessIterator (#3575, thanks @grafi-tt!)
- Remove requirements for unit testing (#3604)
New Features
- New functions: F.fix (#3645), F.cumsum (#3535, thanks @ronekko!), F.gumbel_softmax (#3359, thanks @ishihara1989!)
- New dataset loader: Fashion MNIST (#3292, thanks @kashif!)
- New iterator: MultithreadIterator (#3081)
- Functions with double-backprop support: broadcast (#3420), hstack (#3489), scatter_add (#3493), ELU (#3504), CReLU (#3506), hard_sigmoid (#3507), abs (#3530), div (#3531), log, log2, log10 (#3537), floor (#3539), PReLU (#3540), dstack (#3546), vstack (#3547), title (#3548), squared_difference (#3549), fliplr (#3565), flipud (#3566), depth2space, space2depth (#3568), pad_sequence (#3573), pad (#3577), square (#3578), sqrt (#3581) resize_images (#3608), cosh, sinh (#3611), ceil (#3612), logsumexp (#3613), log1p (#3614), rdiv (#3615), inv, batch_inv (#3616), minimum (#3617), sin, cos, tan, arcsin, arccos, arctan, arctan2 (#3618), minmax (#3643), fmod (#3645), clip (#3737), pow (#3755)
- cuDNN v6 dilated convolution (#2858, thanks @anaruse!)
- Use CuPy default memory pool (#3329)
- Add ignore option to NpzDeserializer (#3716)
- Add fan_option to HeNormal initializer (#3482, thanks @yuyu2172!)
- Define dummy cuda.cupy when cupy is not available (#3558)
- Autotuner for cuDNN Convolution functions (#3669)
Improvements
- Use correct module path (#3364)
- Richer gradient check output (#3425)
- Relax int type restriction (#3466)
- Support file-like object in npz serializer (#3513)
- Make caffe model loading faster (#3523, thanks @grafi-tt!)
- Always cast all inputs to given dtype in gradient check (#3561)
- Use a distinct RandomState in the prefetch thread of MultiProcessIterator (#3575, thanks @grafi-tt!)
- Raise user-friendly error when FunctionNode is used like Function object (#3598)
- Improve version embedding (#3628)
- Rename plot -> plt (#3698, thanks @Hakuyume!)
- Avoid zero-division warning in F.r2_score (#3703)
- Allow to_gpu and to_cpu to accept NumPy scalars (#3741)
- Check too small eps in Adam and RMSprop optimizers (#3753)
- Fix F.inv to raise exception when input has singular matrices (#3770)
- Use correct module path (#3781)
- Remove function call to up performance (#3786)
- Remove unnecessary branch in minimum forward (#3818)
- Use stderr for “Downloading…” message of dataset (#3886)
Bug fixes
- Fix the problem with resuming training when switching the freezing layers (#3125, thanks @jinjiren!)
- Stop checking docstring compliance with autosummary (#3285)
- Fix LSTM bias initialization (#3333)
- Fix xxx_pooling_nd causes CUDNN_STATUS_NOT_SUPPORTED for dims > 3 (#3553)
- Prevent ZeroDivisionError in softmax_cross_entropy when input size is 0 (#3559, thanks @knorth55!)
- Fix document directive typo (#3627)
- Setup random of Python library in testing/random (#3630)
- Fix split_axis documentation (#3699)
- Remove direction (#3716)
- Use cudnn.DropoutStates instead of calling API directly (#3717)
- Ignore DeprecationWarnig caused in theano (#3785)
- Remove function call to up performance (#3786)
- Add dilation to dict key and rename internal function (#3831)
- Fix sigmoid_cross_entropy doc about
t
(#3840) - Use context to close opened file (#3853)
- Fix test condition in function tutorial (#3854)
- Avoid zero division error in linear init call (#3871)
- Fix test condition in function tutorial (#3873)
Documentation
- Add tutorial on trainers (#2620) and extensions tutorial (#3138)
- Document improvements: sigmoid_cross_entropy (#3562, thanks @naoto0804!), huber_loss (#3563, thanks @naoto0804!), contrastive triplet (#3564, thanks @naoto0804!), context managers (#3619), configuration flags (#3620), F.forget (#3776)
- New registered documents: get_conv_outsize, get_deconv_outsize to doc (#3379), CUDAProfileHook and CupyMemoryProfileHook to the reference (#3487, thanks @ronekko!), get_svhn (#3670), criteria of initializers (#3327), Evaluator.evaluate (#3203)
- Fix the wrong discription of
t
option of F.sigmoid_cross_entropy (#3840) - Add warnings to documents of experimental features (#3392)
- Fix contribution guide for test framework change (#3625)
- Fix typos (#3582, #3583, #3634, #3627, #3543, #3747, 3772), doctests (#3285, #3641, #3654, #3757, #3810), and other minor errors (#3659, #3699, #3771)
Installation
Examples
- New example: POS-tagging (#1375)
- Add
--log-interval
and--validation-interval
options to seq2seq example (#3430)
Tests
- Stabilize deconvolution2d test (#3107)
- Move to PyTest instead of nose (#3324)
- Stabilize roi_pooling_2d test by adjusting tolerance (#3381)
- Richer gradient check output (#3425)
- Always cast all inputs to given dtype in gradient check (#3561)
- Replace the test framework with PyTest (#3590)
- Configure AppVeyor to use PyTest (#3595)
- Fix test_init_docstring (#3599)
- Fix for pytest migration (#3600)
- Fix math function testing helper to support new style functions. (#3603)
- Remove requirements for unit testing (#3604)
- Use Python 3.4.4 on Travis OSX Python 3.4 case (#3609)
- Remove nose dependency in tests (#3623)
- Fix decorators to allow users to filter test cases by number of GPUs (#3624)
- Fix doctest (#3641)
- Directional derivative (#3652)
- Use python 3.5 for doctest (#3653)
- Fix doctest (#3654)
- Useful error message for parameterized tests (#3661)
- Run OS X test only on master/stable branch to avoid delay (#3674)
- Remove PyTest global option configuration (#3685)
- Fix to skip GPU tests on AppVeyor (#3689)
- Fix math function test helper to support double backward test of line… (#3697)
- Fix normalization warning in F.average test (#3704)
- Use pytest-warnings to set warnings configuration (#3715)
- F.tile doctest does not test our function (#3757)
- Fix F.inv test does not test type error as expected (#3769)
- Ignore DeprecationWarnig caused in theano (#3785)
- Add double-backward test for F.inv and F.batch_inv (#3793)
- Fix test tolerance for F.fmod double backward test (#3837)
- Fix test condition in function tutorial (#3854)
- Fix test condition in function tutorial (#3873)
- Adjust tolerances of depth_2_space, space_2_depth tests (#3887)