Replace deprecated v2.ToTensor() in Matrix-Game-2/inference.py with v2.ToImage() + v2.ToDtype(scale=True)

Open Beginner friendly
#82 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
1/5
Estimated time
Under an hour
Newbie friendliness
90/100
Issue type
Refactor
Clarity
Clearly specified
Activity status
Active
Tech stack
python, pytorch

Research direction

Start at Matrix-Game-2/inference.py:43 and inspect the frame_process pipeline around the deprecated transform. Validate the inference preprocessing with torchvision 0.26.0+cpu and warnings treated as errors; done means the warning is gone and the replacement produces equivalent output.

Written by the indexing model from the issue text.

Description

Summary

Matrix-Game-2/inference.py:43 instantiates torchvision.transforms.v2.ToTensor(), which is a deprecated alias: constructing it emits a UserWarning on every instantiation:

self.frame_process = v2.Compose([
    v2.Resize(size=(352, 640), antialias=True),
    v2.ToTensor(),          # ← emits UserWarning on construction
    v2.Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5]),
])

Warning text (verified on torchvision 0.26.0):

The transform ToTensor() is deprecated and will be removed in a future release. Instead, please use v2.Compose([v2.ToImage(), v2.ToDtype(torch.float32, scale=True)]).

This warning has been present since torchvision 0.15 (when the v2 namespace was introduced) — torchvision/transforms/v2/_deprecated.py has called warnings.warn in ToTensor.__init__ since the first release.

Proposed fix

Replace v2.ToTensor() with the officially recommended equivalent inside the same v2.Compose:

self.frame_process = v2.Compose([
    v2.Resize(size=(352, 640), antialias=True),
    v2.ToImage(),
    v2.ToDtype(torch.float32, scale=True),
    v2.Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5]),
])
Validation (torchvision 0.26.0+cpu)
  • v2.ToTensor()(img) and v2.Compose([v2.ToImage(), v2.ToDtype(torch.float32, scale=True)])(img) produce identical output up to float precision: max abs diff = 5.96e-8 (a single last-bit rounding difference on uint8→float32 scaling; the official deprecation message itself states "Output is equivalent up to float precision").
  • With warnings.simplefilter("error", UserWarning): the current code raises the deprecation UserWarning; the proposed pipeline constructs and runs cleanly.
Impact
  • No deprecation UserWarning during inference; no behavior change to frame preprocessing.
References
  • torchvision docs: v2.ToTensor (deprecated) — "[DEPRECATED] Use v2.Compose([v2.ToImage(), v2.ToDtype(torch.float32, scale=True)]) instead."
  • torchvision source torchvision/transforms/v2/_deprecated.pywarnings.warn in ToTensor.__init__, present since 0.15.
Dominant language
Python
Stars
2.3k
Forks
254
PR merge metrics
No merged PRs in 30d

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from SkyworkAI/Matrix-Game

All issues in SkyworkAI/Matrix-Game

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.