This release is meant to fix the following issues (regressions / silent correctness):
Breaking Changes:
The pytorch/pytorch docker image now installs the PyTorch package through pip and has switch its conda installation from miniconda to miniforge (#134274)
Windows:
Fix performance regression on Windows related to MKL static linking (#130619) (#130697)
Fix error during loading on Windows: [WinError 126] The specified module could not be found. (#131662) (#130697)
Fix error on Windows with CPU inference (#131958) (#130697)
Fix error when using torch.utils.flop_counter.FlopCounterMode (#134467)
Tracked Regressions:
The experimental remote caching feature for Inductor's autotuner (enabled via TORCHINDUCTOR_AUTOTUNE_REMOTE_CACHE) is known to still be broken in this release and actively worked on in main. Following Error is generated: redis.exceptions.DataError: Invalid input of type: 'dict'. Please use nightlies if you need this feature (reported and Fixed by PR: #134032)
Release tracker #132400 contains all relevant pull requests related to this release as well as links to related issues.
PyTorch 2.4: Python 3.12, AOTInductor freezing, libuv backend for TCPStore
PyTorch 2.4 Release Notes
... (truncated)
Commits
ee1b680 [Doc] Fix rendering of the unicode characters (#134695)
79c8867 Fix docstring for torch.signal.windows.nuttall (#134704)
This is a patch release, which is compatible with PyTorch 2.4.1. There are no new features added.
Torchvision 0.19 release
Highlights
Encoding / Decoding images
Torchvision is extending its encoding/decoding capabilities. For this version, we added a GIF decoder which is available as torchvision.io.decode_gif(raw_tensor), torchvision.io.decode_image(raw_tensor), and torchvision.io.read_image(path_to_image).
We also added support for jpeg GPU encoding in torchvision.io.encode_jpeg(). This is 10X faster than the existing CPU jpeg encoder.
Stay tuned for more improvements coming in the next versions. We plan to improve jpeg GPU decoding, and add more image decoders (webp in particular).
Resizing according to the longest edge of an image
It is now possible to resize images by setting torchvision.transforms.v2.Resize(max_size=N): this will resize the longest edge of the image exactly to max_size, making sure the image dimension don't exceed this value. Read more on the docs!
Detailed changes
Bug Fixes
[datasets] SBDataset: Only download noval file when image_set='train_noval' (#8475)
[datasets] Update the download url in class EMNIST (#8350)
[io] Fix compilation error when there is no libjpeg (#8342)
[reference scripts] Fix use of cutmix_alpha in classification training references (#8448)
[utils] Allow K=1 in draw_keypoints (#8439)
[transforms] Allow v2 Resize to resize longer edge exactly to max_size (#8459)
[transforms] Add min_area parameter to SanitizeBoundingBox (#7735)
[transforms] Make adjust_hue() work with numpy 2.0 (#8463)
[transforms] Enable one-hot-encoded labels in MixUp and CutMix (#8427)
[transforms] Create kernel on-device for transforms.functional.gaussian_blur (#8426)
[io] Adding GPU acceleration to encode_jpeg (10X faster than CPU encoder) (#8391)
[io] read_video: accept BytesIO objects on pyav backend (#8442)
[io] Add compatibility with FFMPEG 7.0 (#8408)
[datasets] Add extra to install gdown (#8430)
[datasets] Support encoded RLE format in for COCO segmentations (#8387)
[datasets] Added binary cat vs dog classification target type to Oxford pet dataset (#8388)
... (truncated)
Commits
6194369 [cherry-pick] Restrict ffmpeg to 4.2+.X versions to resolve linux conda build...
5bada1f Cherry-Pick Pin setuptools to 72.1.0 (#8606)
You can trigger a rebase of this PR by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
- `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
- `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency
- `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Note
Automatic rebases have been disabled on this pull request as it has been open for over 30 days.
Bumps the torch group with 2 updates in the / directory: torch and torchvision.
Updates
torch
from 2.1.0 to 2.4.1Release notes
Sourced from torch's releases.
... (truncated)
Commits
ee1b680
[Doc] Fix rendering of the unicode characters (#134695)79c8867
Fix docstring for torch.signal.windows.nuttall (#134704)38b96d3
Do not use\<filesystem>
on Linux (#134494) (#134604)b84e8c6
Move module_tracker to logging for confused hierarchy (#134467) (#134501)6a79d4a
[ROCm] Prevent accidental enablement of efficient attention. (#134531)e0ddbff
[Release Only] Disable flaky failing tests in release. Pin optree. Pin sympy ...314f033
Use ephemeral runners for windows nightly builds (#134463) (#134496)9c1f78e
[CD] Use ephemeral arm64 runners for nightly and docker builds (#134473) (#13...3675fc5
Use ephemeral runners for linux nightly builds (#134367) (#134492)920c023
docker: Use miniforge, install from pip (#134497)Updates
torchvision
from 0.16.0 to 0.19.1Release notes
Sourced from torchvision's releases.
... (truncated)
Commits
6194369
[cherry-pick] Restrict ffmpeg to 4.2+.X versions to resolve linux conda build...5bada1f
Cherry-Pick Pin setuptools to 72.1.0 (#8606)99d97fa
Update version.txt to 0.19.148b1edf
Remove prototype area for 0.19 (#8491)f44f20c
Use@release/2
.4 instead of@main
for CI jobs (#8490)143d078
Adding GPU acceleration to encode_jpeg (#8391)f96c42f
Re-enable vision MPS builds (#8485)f1bcbd3
[FBcode->GH] Fix using namespace in pytorch/vision/torchvision/csrc/io/video/...27764a1
Skip flaky earth gif test on OSS CI (#8480)b09b3f6
Remove unused dynamo import (#8451)You can trigger a rebase of this PR by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show