Releases: pystiche/pystiche
Fix usage examples
Stable PyPI release
First stable release
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:
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:
- MAJOR version when you make incompatible API changes,
- MINOR version when you add functionality in a backwards compatible manner, and
- 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
andpystiche.optim.meter
were removed in favor oftqdm
(#451) - The deprecated functions
default_image_optim_loop
,default_image_pyramid_optim_loop
,default_transformer_optimizer
,default_transformer_optim_loop
, anddefault_transformer_epoch_optim_loop
were removed from thepystiche.optim
namespace. (#465) - The keyword argument
get_optimizer
was removed frompystiche.optim.image_optimization
. (#465) pystiche.image.transforms
was removed in favor of functionality provided bytorchvision
. (#472, #502)pystiche.data.Unsupervised
was removed. (#504)pystiche.demo.demo_images
was removed. (#504)- The keyword argument
weights
was removed frompystiche.enc.alexnet_multi_layer_encoder()
andpystiche.enc.vgg_*_multi_layer_encoder()
. (#504) - The keyword argument
user_agent
was removed frompystiche.misc.download_file
. (#504) - The default behavior of
pystiche.extract_patches*d()
and derivativespystiche.loss.MRFLoss
andpystiche.loss.functional.mrf_loss
(formerlypystiche.ops.MRFOperator
andpystiche.ops.functional.mrf_loss
) changed from non-batched to batched. (#506)
v0.7.2.post0
v0.7.1
v0.7.0
This release brings better support for model optimization:
- add auto batch size matching for comparison operators (#432, #433)
- add a default
criterion_update_fn
foroptim.model_optimization
(formeroptim.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
toimage_optimization
(#430) - renamed
default_image_pyramid_optim_loop
topyramid_image_optimization
(#430) - renamed
default_transformer_optimizer
todefault_model_optimizer
(#430) - renamed
default_transformer_optim_loop
tomodel_optimization
(#430) - renamed
default_transformer_epoch_optim_loop
tomulti_epoch_model_optimization
(#430) - renamed parameter
get_optimizer
tooptimizer
inimage_optimization
(#431, #452)
v0.6.3
v0.6.2
v0.6.1
Accepted in pyOpenSci
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 topystiche.demo.images()
pystiche.demo.demo_logger()
was renamed topystiche.demo.logger()