Skip to content
This repository has been archived by the owner on Jan 12, 2024. It is now read-only.

Releases: PhoenixDL/rising

Dependency Updates & Bug Fixes

29 Dec 16:47
Compare
Choose a tag to compare
Pre-release

This release unpins dependencies to make the package compatible with latest torch versions, fixes CI and two minor bugs.

Full Changelog: v0.2.2...v0.3.0

Models Genesis Transforms

20 Dec 13:34
437f891
Compare
Choose a tag to compare
Pre-release

What's Changed

New Contributors

Full Changelog: v0.2.1...v0.2.2

Bugfix Release

26 Jul 15:55
ca0cf77
Compare
Choose a tag to compare
Bugfix Release Pre-release
Pre-release

Includes the following fixes:

  • Download of mednist (#101)
  • Adds BaseTransformSeeded + warnings (#100)
  • Adds compatibility with newer torch versions (#106)
  • Adds correct image transforms (#110)
  • Fixes support for DDP (#116)

Thanks to @NKPmedia @ndalton12 @FirasGit @mibaumgartner for these fixes

Release 0.2.0

17 May 17:23
871c839
Compare
Choose a tag to compare
Release 0.2.0 Pre-release
Pre-release

New Features

  • Add Resizing Transforms [Commit]
  • Transforms for filter an remove keys Commit
  • Add support for Python 3.8 Commit
  • Transforms in Compose can now be shuffled [Commit]
  • Test Examples more intesively [Commit]
  • Random Parameter Injection API [Commit]
  • Transform to Rename Keys [Commit]
  • ArgMax Transform [Commit]
  • OneOf Transform [Commit]
  • Per Sample Option for Affines [Commit]
  • Hosted Docs on ReadTheDocs
  • Tested and available Examples on ReadTheDocs
  • Segmentation Example with PyTorch Lightning (3D)
  • Classification Example with PyTorch Lightning (2D)

Bug Fixes/Enhancements

  • Use ModuleList in Compose Transforms [Commit]
  • Update DataLoader for better integration with frameworks like PyTorch Lightning or PyTorch ignite, which parse the loaders attributes [Commit]
  • Make transforms in compose mutable [Commit]
  • Refactoring for Python 3.6 Support [Commit]
  • Tests on all major platforms [Commit]
  • Filter warnings after first occurence [Commit]
  • Disable Warnings in all workers but one [Commit]

Breaking Changes

  • Cleanup Affine Interface [Commit]
  • Remove previous random transforms for random parameter injection API [Commit]
  • Move device functional [Commit]

Deprecations

--None--

Removals

Release v 0.1.0

22 Feb 22:33
a2025be
Compare
Choose a tag to compare
Release v 0.1.0 Pre-release
Pre-release

This release candidate is the first ever release containing the most convenient transforms as well as a brand new DataLoader class.

New Features

  • Option to Compose single transforms [Commit]
  • First spatial Transforms [Commit]
  • Custom Dataloader as Drop-In replacement for PyTorch [Commit]
  • Custom Dataset Class to extend the PyTorch dataset [Commit]
  • Transform call dispatching algorithm can now be changed by user [Commit]
  • Utility Transforms [Commit]
  • User-Controllable call dispatch within the Compose class [Commit]
  • Basic Affine Transforms [Commit]

Bug Fixes/Enhancements

  • Shared memory for progressive resizing [Commit]

Breaking Changes

--None--

Deprecations

--None--

Removals

--None--

Towards the API

The new DataLoader class was defined to be an exact drop-in replacement for the loader provided by PyTorch. As such it only extends the PyTorch loader but under the hood it uses the same multiprocessing and structure as the one already available.

  • Support for Batch-Transformations
  • Support for GPU Transformations
  • Support to disable automated conversion to torch.Tensor
  • Support to specify, how the transform call should be dispatched
  • Automated seed for numpy in all child processes

However there are some limitations to this:

  • using CUDA from different processes is troublesome on most machines
  • GPU transforms will therefore always be executed after the CPU batch_transforms

The usage is quite simple: Just replace the import! all your previous keywords are still working correctly, but there are some new keywords available for the previously mentioned features:

Before:

from torch.utils.data import DataLoader
dset = torchvision.datasets.MNIST(root='/tmp', dowload=True)
# this does not seed numpy per worker
loader = DataLoader(dset, shuffle=True, num_workers=4)

Ours:

from rising.loading import DataLoader
dset = torchvision.datasets.MNIST(root='/tmp', dowload=True)
# this also seeds numpy!
loader = DataLoader(dset, shuffle=True, num_workers=4)

Note: To seed numpy for all child processes in a reproducible way, it must be seeded in the main process, since the base-seed for all the child processes is computed within the main process!

First Alpha Release

25 Nov 12:59
Compare
Choose a tag to compare
First Alpha Release Pre-release
Pre-release

This release includes the following:

  • Basic tensor operations (currently numpy and torch one hot transformations)
  • Basic spatial transforms (mirroring and ro90)
  • Intensity transforms (norm_min_max, norm_range, norm_zero_mean_unit_std, add_noise, gamma_correction, add_value, scale_by_value)