torchvision breaking changes
Every breaking API change we have recorded in torchvision on PyPI: 41 breaking changes in 2 versions. Below are its newest 2 versions, removals and renames first, each with its source.
Newest change September 2, 2026

On this page
0.29.0
- Removed
decode_image.apply_exif_orientation
EXIF orientation is now always applied. Remove the apply_exif_orientation argument from calls. meta-pytorch.org - Removed
encode_jpeg
Instantiate JpegEncoder with the image and call to_tensor with quality instead. meta-pytorch.org - Removed
encode_png
Instantiate PngEncoder with the image and call to_tensor with compression_level instead. meta-pytorch.org - Removed
torchvision.io.read_file
No equivalent is needed. Pass the file path directly to the decoder instead. meta-pytorch.org - Default changed
decode_image
Calls that relied on the source's own channel layout must pass mode="UNCHANGED" explicitly. meta-pytorch.org - Signature changed
torchvision.io.write_file
Use the to_file method of an encoder class instead. pypi.org - Signature changed
torchvision.io.write_jpeg
Instantiate JpegEncoder with the image and call to_file with quality instead. pypi.org - Signature changed
torchvision.io.write_png
Instantiate PngEncoder with the image and call to_file with compression_level instead. pypi.org
0.28.0
- Behavior changed
F.resize
Mask inputs passed to F.resize with NEAREST_EXACT now get NEAREST_EXACT output rather than plain NEAREST output. Code that relied on the old mask output may see different results. github.com - Signature changed
torchvision.transforms.v2.AugMix.__init__
Was def __init__(self, severity: int = 3, mixture_width: int = 3, chain_depth: int = -1, alpha: float = 1.0, all_ops: bool = True, interpolation: Union[InterpolationMode, int] = InterpolationMode.BILINEAR, fill: Union[_FillType... pypi.org - Signature changed
torchvision.transforms.v2.AutoAugment.__init__
Was def __init__(self, policy: AutoAugmentPolicy = AutoAugmentPolicy.IMAGENET, interpolation: Union[InterpolationMode, int] = InterpolationMode.NEAREST, fill: Union[_FillType, dict[Union[type, str], _FillType]] = None) -> None; now def... pypi.org - Signature changed
torchvision.transforms.v2.ElasticTransform.__init__
Was def __init__(self, alpha: Union[float, Sequence[float]] = 50.0, sigma: Union[float, Sequence[float]] = 5.0, interpolation: Union[InterpolationMode, int] = InterpolationMode.BILINEAR, fill: Union[_FillType, dict[Union[type, str]... pypi.org - Signature changed
torchvision.transforms.v2.functional.affine
Was def affine(inpt: torch.Tensor, angle: Union[int, float], translate: list[float], scale: float, shear: list[float], interpolation: Union[InterpolationMode, int] = InterpolationMode.NEAREST, fill: _FillTypeJIT = None, center... pypi.org - Signature changed
torchvision.transforms.v2.functional.affine_image
Was def affine_image(image: torch.Tensor, angle: Union[int, float], translate: list[float], scale: float, shear: list[float], interpolation: Union[InterpolationMode, int] = InterpolationMode.NEAREST, fill: _FillTypeJIT = None, center... pypi.org - Signature changed
torchvision.transforms.v2.functional.affine_video
Was def affine_video(video: torch.Tensor, angle: Union[int, float], translate: list[float], scale: float, shear: list[float], interpolation: Union[InterpolationMode, int] = InterpolationMode.NEAREST, fill: _FillTypeJIT = None, center... pypi.org - Signature changed
torchvision.transforms.v2.functional.elastic
Was def elastic(inpt: torch.Tensor, displacement: torch.Tensor, interpolation: Union[InterpolationMode, int] = InterpolationMode.BILINEAR, fill: _FillTypeJIT = None) -> torch.Tensor; now def elastic(inpt: torch.Tensor, displacement... pypi.org - Signature changed
torchvision.transforms.v2.functional.elastic_image
Was def elastic_image(image: torch.Tensor, displacement: torch.Tensor, interpolation: Union[InterpolationMode, int] = InterpolationMode.BILINEAR, fill: _FillTypeJIT = None) -> torch.Tensor; now def elastic_image(image: torch.Tensor... pypi.org - Signature changed
torchvision.transforms.v2.functional.elastic_video
Was def elastic_video(video: torch.Tensor, displacement: torch.Tensor, interpolation: Union[InterpolationMode, int] = InterpolationMode.BILINEAR, fill: _FillTypeJIT = None) -> torch.Tensor; now def elastic_video(video: torch.Tensor... pypi.org
And 23 more in this version.
Check your code
These are the changes. To see which of them reach your code, scan a public repository, or have your coding agent call check_code with your manifest or lockfile over MCP. The API reads every change in every version, not only the newest. On Team and up, a fix pull request opens for the changes that reach a connected repository. Nothing merges or deploys.

Put your code on continuous management.
Scan a public repository now, or give your agent one line.
See how out of date your code is.
Tell your agent what changed since it was trained.
claude mcp add --transport http since https://api.since.dev/mcp