- Fixed issue with CIFAR data loaders not being able to be pickled because of local Lambda operations
- Fixed CI issues, disabled PyTorch v1.0, v1.1, and latest checks
- Added support for 2-dimensional inputs for AffineAdapterSigmoid
- Fixed CI issues
- Added support for mixed-precision training using torch.cuda.amp (inputs fixed to float32 for now)
- Added support for PyTorch v1.7
- Dropped support for PyTorch < v1.0 and Python 2
- Removed the version limit for Pillow in the requirements
- Added support for splitting on arbitrary dimensions to the Couplings. Big thanks to ClashLuke for the PR
- Added a preserve_rng_state option to the InvertibleModuleWrapper
- Improved InvertibleModuleWrapper * Added support for multi input/output invertible operations! Big thanks to Christian Etmann for the PR
- Improved the is_invertible_module test * Added multi input/output checks * Fixed random seed per default * Additional warning checks have been added
- HOTFIX InvertibleCheckpointFunction uses ref_count for inputs as well to avoid memory spikes
- Updated underlying mechanics for the InvertibleModuleWrapper * Hooks have been replaced by a torch.autograd.Function called InvertibleCheckpointFunction * Identity functions are now supported
- Reported unstable memory behavior should be fixed now when using the InvertibleModuleWrapper!
- Minor changes to test suite
- Added InvertibleModuleWrapper support to is_invertible_module test
- Replaced TensorBoard logging with simple json file logging which removed the cumbersome TensorBoard and TensorFlow dependencies
- Updated the Dockerfile for Python37 and PyTorch 1.4.0
- Updated the CI tests Py36 versions to Py37, also added a new CI test for PyTorch 1.4.0
- Fixed some versions in the requirements for TensorFlow and Pillow to avoid errors and segfaults
- The module auto documentation has been updated for the new API changes
- A complete refactor of MemCNN with changes to the API
- Factored out the code responsible for the memory savings in a separate InvertibleModuleWrapper and reimplemented it using hooks
- The InvertibleModuleWrapper allows for arbitrary invertible functions now (not just the additive and affine couplings)
- The AdditiveBlock and AffineBlock have been refactored to AdditiveCoupling and AffineCoupling
- The ReveribleBlock is now deprecated
- The documentation and examples have been updated for the new API changes
- Bug fixes related to SummaryIterator import in Tensorflow 2 (location of summary_iterator has changed in TensorFlow)
- Bug fixes related to NSamplesRandomSampler nsamples attribute (would crash if no-gpu and numpy.int were given)
- Major release for completing the JOSS review:
- Anaconda cloud and codacy code quality CI
- Updated/improved documentation
- Added CI for anaconda cloud
- Documented conda installation steps
- Minor test release for testing CI build
- Performed changes recommended by JOSS reviewers:
- Added requirements.txt to manifest.in
- Added codacy code quality integration
- Improved documentation
- Setup proper github contribution templates
- Added docker build triggers to CI
- Finalized JOSS paper.md
- Added docker build shield
- Fixed a bug with device agnostic tensor generation for loss.py
- Code cleanup resnet.py
- Added examples to distribution with pytests
- Improved documentation
- Added experiments.json and config.json.example data files to the distribution
- Fixed documentation issues with mock modules
- Updated major bug in distribution setup.py
- Removed older releases due to bug
- Added the ReversibleBlock at the module level
- Splitted keep_input into keep_input and keep_input_inverse
- Patched the memory saving tests
- Minor update with better coverage and affine coupling support
- First release on PyPI