Skip to content

Releases: pystiche/pystiche

Fix usage examples

20 Aug 21:00
Compare
Choose a tag to compare

Bug fix release targeting the usage examples:

  • fix download links for usage example without pystiche (#517)
  • fix docs version string (#526)
  • remove version warning from MLE example (#527)
  • remove MLE handler from optim functions (#528)
  • remove paragraph explaining no longer existing parameter (#529)

Stable PyPI release

07 Aug 13:03
65f4d78
Compare
Choose a tag to compare

Minimal follow-up to 1.0.0 since the release was rejected by PyPI due to incorrect meta data that was fixed in #508.

First stable release

07 Aug 12:52
3ee1f71
Compare
Choose a tag to compare

It is finally here: the first stable release of pystiche 🎉

Logo

It have been quite some (internal) iterations, but thanks to @irinafumarel we finally have a logo after #503:

logo

What do you think?

Multi-layer encoder

Before the implementation of a pystiche.enc.MultiLayerEncoder required to encode all images upfront so the intermediate encodings can be cached. In a series of PRs (#466, #467, #470, #471, #499) this was refactored to now provide the same caching functionality on the fly. For an in-depth look at this, a new usage example showcasing this was added in #468.

Merger of pystiche.ops and pystiche.loss

The only difference between operators and losses was the fact that losses handled the upfront encoding of images. After the rework discussed above this was no longer necessary so there was no longer any reason to keep these two modules separate. With this release, pystiche.ops was merged into pystiche.loss in #500.

Optimization logging

pystiche featured a custom logging system for the optimization loops. To keep the scope of this library narrow, this was replaced by tqdm in #451.

Versioning

After this release pystiche will adhere to semantic versioning. Without going into details, this means:

Given a version number MAJOR.MINOR.PATCH, increment the:

  1. MAJOR version when you make incompatible API changes,
  2. MINOR version when you add functionality in a backwards compatible manner, and
  3. PATCH version when you make backwards compatible bug fixes.

BC-breaking changes

All of these changes issued a warning for at least one release.

  • Functionality in pystiche.optim.log and pystiche.optim.meter were removed in favor of tqdm (#451)
  • The deprecated functions default_image_optim_loop, default_image_pyramid_optim_loop, default_transformer_optimizer, default_transformer_optim_loop, and default_transformer_epoch_optim_loop were removed from the pystiche.optim namespace. (#465)
  • The keyword argument get_optimizer was removed from pystiche.optim.image_optimization. (#465)
  • pystiche.image.transforms was removed in favor of functionality provided by torchvision. (#472, #502)
  • pystiche.data.Unsupervised was removed. (#504)
  • pystiche.demo.demo_images was removed. (#504)
  • The keyword argument weights was removed from pystiche.enc.alexnet_multi_layer_encoder() and pystiche.enc.vgg_*_multi_layer_encoder(). (#504)
  • The keyword argument user_agent was removed from pystiche.misc.download_file. (#504)
  • The default behavior of pystiche.extract_patches*d() and derivatives pystiche.loss.MRFLoss and pystiche.loss.functional.mrf_loss (formerly pystiche.ops.MRFOperator and pystiche.ops.functional.mrf_loss) changed from non-batched to batched. (#506)

v0.7.2.post0

17 May 19:08
Compare
Choose a tag to compare

Another small maintenance release with these minimal changes:

  • revert default for allow_inplace from True to False (#479)
  • make images and guides saved on Ops non-persistent (#490)
  • add demo transformer (#492)
  • add official support for Python 3.9 (#494)

v0.7.1

28 Apr 20:20
Compare
Choose a tag to compare

This is a small maintenance release that unpins PyTorch (#488). Now all PyTorch versions that satisfy torch>=1.6.0 are supported.

v0.7.0

04 Nov 09:18
4a85291
Compare
Choose a tag to compare

This release brings better support for model optimization:

  • add auto batch size matching for comparison operators (#432, #433)
  • add a default criterion_update_fn for optim.model_optimization (former optim.default_transformer_optim_lopp, see below) (#460)
  • add support for supervised datasets in model optimization (#461)
  • add usage example for model optimization (#462, #463)

Additionally,

  • Enable to pass an optimizer to pystiche.optim.image_optimization (#431)
  • Split handling of multi-layer encoders into a separate class (#438)

Finally. this release marks the last beta release. In the future pystiche will be trimmed of funtionalities that can be handled by other specialized librarys. An example would be replacing pystiche.optim.log with tqdm or pystiche.image.transforms with kornia.

Deprecations

As detailed above, this release deprecates a good amount of functionalities. It was made sure that these deprecations are only emitted if the deprecated functionalities are used directly rather than through default values from other pystiche parts (#441, #442, #452, #456).

pystiche.extract_patches*d

The functions currently have no supported for batched inputs in that sense that the batch dimensions doubled for the number of patches. In the future the output shape will change from B*Px... to BxPx... where B denotes the batch size and P the number of patches (#446). As a prerequisite a parameter batched_input was added to pystiche.cosine_similarity and pystiche.ops.functional.mrf_loss. For now it defaults to the old behavior, but that will be changed in the future. If these functions are used directly, a FutureWarning is emitted.

pystiche.image.transforms

pystiche.image.transforms is a remnant of the distant path. The complete functionality can be replaced by specialized computer vision libraries such as kornia.

pystiche.enc.MultiLayerEncoder

The functionalities of __call__() and encode() will swap in some sense. __call__() will be usually called only with a single layer. encode() on the other hand will return the encodings of the given layers without storing them. If you use these methodes directly, they will emit a FutureWarning. For more details see #435.

pystiche.optim

pystiche.optim has capabilities for custom logging during the optimization. This is far off pystiche's goal and thus we decided to replace it with tqdm.

  • deprecate pystiche.optim.log (#452)
  • deprecate pystiche.optim.meter (#452)
  • renamed default_image_optim_loop to image_optimization (#430)
  • renamed default_image_pyramid_optim_loop to pyramid_image_optimization (#430)
  • renamed default_transformer_optimizer to default_model_optimizer (#430)
  • renamed default_transformer_optim_loop to model_optimization (#430)
  • renamed default_transformer_epoch_optim_loop to multi_epoch_model_optimization (#430)
  • renamed parameter get_optimizer to optimizer in image_optimization (#431, #452)

v0.6.3

30 Oct 21:50
Compare
Choose a tag to compare
  • update citation after JOSS publication (#429)
  • pin PyTorch versions (#437)

v0.6.2

19 Oct 19:03
3275250
Compare
Choose a tag to compare
  • Add a Statement of Need to the JOSS Paper (#425)
  • Use published version instead of preprint for MV2014 (now MV2015) (#423, #426)
  • Fix Zenodo metadata (#427, #428)

v0.6.1

08 Oct 18:25
724cf43
Compare
Choose a tag to compare

Minor release that updates the installation instructions after the first PyPI release.

Accepted in pyOpenSci

08 Oct 18:15
0a85e8c
Compare
Choose a tag to compare

This is the first release after the successful (:tada:) peer review (#418). It mainly contains small bug fixes and improvements to the documentation detailed below. Furthermore, as of this release pystiche will be published to PyPI easing the installation process.

Bug Fixes

  • fix pystiche.image.edge_to_image_size for horizontal edges (#381)
  • fix and robustify pystiche.misc.download_file in case of an error or corrupt download (#410, #412)
  • fix demo images from Pixabay (#411)

Documentation

  • generic improvements to the README and the contributing guidelines (#400)
  • fix installation instructions (#406)
  • add citation information to the README (#408)
  • add an example image and usage snippet to the README (#413)
  • add inline examples to core functionalities (#415)

Deprecations

  • remove the double namespacing from pystiche.demo (#414)
    • pystiche.demo.demo_images() was renamed to pystiche.demo.images()
    • pystiche.demo.demo_logger() was renamed to pystiche.demo.logger()