From ef8c0f68789e44d56c1fdeae8f2462050e8b3be3 Mon Sep 17 00:00:00 2001 From: Nicolas Hug Date: Tue, 30 Jul 2024 12:28:47 +0100 Subject: [PATCH 1/3] Fix Mypy (#8555) --- torchvision/datasets/kinetics.py | 2 +- torchvision/transforms/_presets.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/torchvision/datasets/kinetics.py b/torchvision/datasets/kinetics.py index 42d32533953..aef61c2442d 100644 --- a/torchvision/datasets/kinetics.py +++ b/torchvision/datasets/kinetics.py @@ -16,7 +16,7 @@ from .vision import VisionDataset -def _dl_wrap(tarpath: str, videopath: str, line: str) -> None: +def _dl_wrap(tarpath: Union[str, Path], videopath: Union[str, Path], line: str) -> None: download_and_extract_archive(line, tarpath, videopath) diff --git a/torchvision/transforms/_presets.py b/torchvision/transforms/_presets.py index d7f88bdb992..fb6f4ad5ca5 100644 --- a/torchvision/transforms/_presets.py +++ b/torchvision/transforms/_presets.py @@ -2,7 +2,7 @@ This file is part of the private API. Please do not use directly these classes as they will be modified on future versions without warning. The classes should be accessed only via the transforms argument of Weights. """ -from typing import Optional, Tuple +from typing import Optional, Tuple, Union import torch from torch import nn, Tensor @@ -87,7 +87,7 @@ def __init__( self, *, crop_size: Tuple[int, int], - resize_size: Tuple[int, int], + resize_size: Union[Tuple[int], Tuple[int, int]], mean: Tuple[float, ...] = (0.43216, 0.394666, 0.37645), std: Tuple[float, ...] = (0.22803, 0.22145, 0.216989), interpolation: InterpolationMode = InterpolationMode.BILINEAR, From 478c670a28e3a71d2f23b35b1f2648943624f542 Mon Sep 17 00:00:00 2001 From: Masahiro Hiramori Date: Tue, 30 Jul 2024 20:36:18 +0900 Subject: [PATCH 2/3] Better progress bar for file downloading (#8556) Co-authored-by: Nicolas Hug --- torchvision/datasets/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/torchvision/datasets/utils.py b/torchvision/datasets/utils.py index 344056d67db..f65eb535459 100644 --- a/torchvision/datasets/utils.py +++ b/torchvision/datasets/utils.py @@ -26,7 +26,7 @@ def _urlretrieve(url: str, filename: Union[str, pathlib.Path], chunk_size: int = 1024 * 32) -> None: with urllib.request.urlopen(urllib.request.Request(url, headers={"User-Agent": USER_AGENT})) as response: - with open(filename, "wb") as fh, tqdm(total=response.length) as pbar: + with open(filename, "wb") as fh, tqdm(total=response.length, unit="B", unit_scale=True) as pbar: while chunk := response.read(chunk_size): fh.write(chunk) pbar.update(len(chunk)) From 09077a8650ec11fd4b472da3900d6d5bcdbc9647 Mon Sep 17 00:00:00 2001 From: Nicolas Hug Date: Tue, 30 Jul 2024 14:20:30 +0100 Subject: [PATCH 3/3] Fix test_write_video_with_audio.. again (#8558) --- test/test_io.py | 7 ++----- torchvision/datasets/kinetics.py | 2 +- torchvision/io/video.py | 2 +- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/test/test_io.py b/test/test_io.py index 695fca02169..1b7b7eb15a1 100644 --- a/test/test_io.py +++ b/test/test_io.py @@ -260,17 +260,14 @@ def test_write_video_with_audio(self, device, tmpdir): f_name = os.path.join(VIDEO_DIR, "R6llTwEh07w.mp4") video_tensor, audio_tensor, info = io.read_video(f_name, pts_unit="sec") - video_tensor = video_tensor.to(device) - audio_tensor = audio_tensor.to(device) - out_f_name = os.path.join(tmpdir, "testing.mp4") io.video.write_video( out_f_name, - video_tensor, + video_tensor.to(device), round(info["video_fps"]), video_codec="libx264rgb", options={"crf": "0"}, - audio_array=audio_tensor, + audio_array=audio_tensor.to(device), audio_fps=info["audio_fps"], audio_codec="aac", ) diff --git a/torchvision/datasets/kinetics.py b/torchvision/datasets/kinetics.py index aef61c2442d..868c08e2c30 100644 --- a/torchvision/datasets/kinetics.py +++ b/torchvision/datasets/kinetics.py @@ -16,7 +16,7 @@ from .vision import VisionDataset -def _dl_wrap(tarpath: Union[str, Path], videopath: Union[str, Path], line: str) -> None: +def _dl_wrap(tarpath: Union[str, Path], videopath: Union[str, Path], line: str) -> None: download_and_extract_archive(line, tarpath, videopath) diff --git a/torchvision/io/video.py b/torchvision/io/video.py index 3bccf414a71..c8f7d2ebde2 100644 --- a/torchvision/io/video.py +++ b/torchvision/io/video.py @@ -115,7 +115,7 @@ def write_video( audio_sample_fmt = container.streams.audio[0].format.name format_dtype = np.dtype(audio_format_dtypes[audio_sample_fmt]) - audio_array = torch.as_tensor(audio_array).numpy().astype(format_dtype) + audio_array = torch.as_tensor(audio_array).numpy(force=True).astype(format_dtype) frame = av.AudioFrame.from_ndarray(audio_array, format=audio_sample_fmt, layout=audio_layout)