- The Dense layer now supports inputs with multiple batch dimensions.
- Dense and Conv layers no longer perform implicit type conversion.
- Excise datasets in favour of other providers in the julia ecosystem.
- Added option to set
biasto false to eliminatingbiasfrom being trained. - Add CTC loss function to Losses module
- Removed kwarg only constructors for
convolutional layers. - Add sparse initialization as described in Deep learning via Hessian-free optimization.
- Moved GPU CI to use buildkite instead of GitLab
- New
Parallellayer adds inception module-like building blocks. - Other new features and bug fixes (see GitHub releases page)
- Adds the AdaBelief optimiser.
- Other new features and bug fixes (see GitHub releases page)
- Moved CUDA compatibility to use CUDA.jl instead of CuArrays.jl
- Add kaiming initialization methods: kaiming_uniform and kaiming_normal
- Use
DataLoaderwithNamedTuples, so that tensors can be accessed by name. - Error if Dense layers weights and biases are not arrays.
- Add Adaptive Pooling in Flux layers.
- Change to
DataLoader's constructor - Uniform loss interface
- Loss functions now live in the
Flux.Lossesmodule - Optimistic ADAM (OADAM) optimizer for adversarial training.
- Add option for same padding to conv and pooling layers by setting
pad=SamePad(). - Added option to set
biasto Flux.Zeros to eliminatingbiasfrom being trained. - Added
GlobalMaxPoolandGlobalMeanPoollayers for performing global pooling operations. - Added
ClipValueandClipNormin this pr toFlux.Optimiseto provide a cleaner API for gradient clipping. - Added new kwarg-only constructors for the various convolutional layers.
- Documented the convolutional layer constructors accepting
weightandbiaskeyword arguments to supply custom arrays for those fields. - Testing suite improvements now test for gradients of all layers along with GPU support.
- Functors have now moved to Functors.jl to allow for their use outside of Flux.
- Added helper functions
Flux.convfilterandFlux.depthwiseconvfilterto construct weight arrays for convolutions outside of layer constructors so as to not have to depend on the default layers for custom implementations. dropoutfunction now has a mandatory active keyword argument. TheDropoutstruct *whose behavior is left unchanged) is the recommended choice for common usage.- and many more fixes and additions...
See GitHub's releases.
- The default AD engine has switched from Tracker to Zygote.jl
- The dependency on Tracker.jl has been removed.
- This means Flux now does not depend on using a specialised
TrackedArraytype, and can be used with normal Array implementations directly. - Tracker compatibility is maintained in most common cases, but Zygote will be the preferred AD backend for Flux from now on.
- The CUDNN wrappers have been moved from Flux into CuArrays, to allow for better supporting the CUDA backend, and improve user experience, not to mention making Flux lean.
*crossentropyfunctions now work as expected with CuArrays. PR for binarycrossentropy.- Added clearer docs around training and the Optimiser interface.
- Layer initialisations have been improved with a clearer API on how to extend it for other purposes.
- Better messaging around CUDA availability, with hooks to initialize the GPU as default where possible.
@treelikehas been formalised as a functor, with an effective deprecation.testmode!is deprecated in favour of istraining
- Depthwise convolutional layer API changes from
in => multchannel specification toin => outchannel specification, and deprecates implicitoutconstructor. - New SkipConnection, which can be used to train residual neural network architectures.
- New RADAM optimiser.
- Dropout now has a
dimsargument for specifying the unbroadcast dimensions. - New ConvTranspose layer.
- New Maxout layer
- Datasets are now hash verified on download to avoid corruption.
- We now zero the initial state for RNNs.
- Normalisation can now work on arbitrary
dims. - Many docs and bugfixes thanks to @KristofferC and others.
- NamedTuples now work like Tuples when doing
mapleaves. - New "performance tips" section of the docs.
- The training loop is now more readable and better shows how to use the lower-level APIs.
- New AlphaDropout.
- Data.Iris makes Fisher's Iris dataset available with
Iris.labelsandIris.features. - New InstanceNorm, as popularized by Instance Normalization: The Missing Ingredient for Fast Stylization.
- New GroupNorm, as described in Group Normalization.
- New CrossCor.
AD Changes:
det,logdetandlogabsdetnow have adjoints.- Support for PermuteDimsArray.
- Flux.Tracker is now its own package, in preparation for replacing it with Zygote.
Despite the heroic efforts of scholars and archeologists, pre-0.7 history is lost to the sands of time.