Skip to content

Commit 6810160

Browse files
Merge branch 'main' into main
2 parents 73a40a8 + 3c4ec97 commit 6810160

File tree

7 files changed

+93
-14
lines changed

7 files changed

+93
-14
lines changed

.github/workflows/build-wheels-aarch64-linux.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
os: linux-aarch64
2626
test-infra-repository: pytorch/test-infra
2727
test-infra-ref: main
28-
with-cuda: disable
28+
with-cuda: enable
2929
build:
3030
needs: generate-matrix
3131
strategy:

docs/source/training_references.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ guarantees.
1919

2020
In general, these scripts rely on the latest (not yet released) pytorch version
2121
or the latest torchvision version. This means that to use them, **you might need
22-
to install the latest pytorch and torchvision versions**, with e.g.::
22+
to install the latest pytorch and torchvision versions** following the `official
23+
instructions <https://pytorch.org/get-started/locally/>`_.
2324

24-
conda install pytorch torchvision -c pytorch-nightly
2525

2626
If you need to rely on an older stable version of pytorch or torchvision, e.g.
2727
torchvision 0.10, then it's safer to use the scripts from that corresponding
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
#!/bin/bash
2+
3+
echo "Building vision dependencies and wheel started."
4+
5+
# Set environment variables
6+
export SRC_PATH="$GITHUB_WORKSPACE/$SRC_DIR"
7+
export CMAKE_BUILD_TYPE="$BUILD_TYPE"
8+
export VCVARSALL_PATH="$DEPENDENCIES_DIR/VSBuildTools/VC/Auxiliary/Build/vcvarsall.bat"
9+
export CONDA_PREFIX="$DEPENDENCIES_DIR"
10+
export PATH="$PATH:$CONDA_PREFIX/Library/bin"
11+
export DISTUTILS_USE_SDK=1
12+
export TRIPLET_FILE="triplets/arm64-windows.cmake"
13+
export PYTORCH_VERSION="$PYTORCH_VERSION"
14+
export CHANNEL="$CHANNEL"
15+
16+
# Dependencies
17+
mkdir -p "$DOWNLOADS_DIR"
18+
mkdir -p "$DEPENDENCIES_DIR"
19+
echo "*" > "$DOWNLOADS_DIR/.gitignore"
20+
echo "*" > "$DEPENDENCIES_DIR/.gitignore"
21+
22+
# Install vcpkg
23+
cd "$DOWNLOADS_DIR" || exit
24+
git clone https://github.com/microsoft/vcpkg.git
25+
cd vcpkg || exit
26+
./bootstrap-vcpkg.sh
27+
28+
# Set vcpkg to only build release packages
29+
echo "set(VCPKG_BUILD_TYPE release)" >> "$TRIPLET_FILE"
30+
31+
# Install dependencies using vcpkg
32+
./vcpkg install libjpeg-turbo:arm64-windows --x-install-root="$DEPENDENCIES_DIR"
33+
./vcpkg install libwebp:arm64-windows --x-install-root="$DEPENDENCIES_DIR"
34+
./vcpkg install libpng[tools]:arm64-windows --x-install-root="$DEPENDENCIES_DIR"
35+
36+
# Copy files using cp
37+
cp "$DEPENDENCIES_DIR/arm64-windows/lib/libpng16.lib" "$DEPENDENCIES_DIR/arm64-windows/lib/libpng.lib"
38+
cp "$DEPENDENCIES_DIR/arm64-windows/bin/libpng16.dll" "$DEPENDENCIES_DIR/arm64-windows/bin/libpng.dll"
39+
cp "$DEPENDENCIES_DIR/arm64-windows/bin/libpng16.pdb" "$DEPENDENCIES_DIR/arm64-windows/bin/libpng.pdb"
40+
mkdir -p "$DEPENDENCIES_DIR/Library/"
41+
cp -r "$DEPENDENCIES_DIR/arm64-windows/"* "$DEPENDENCIES_DIR/Library/"
42+
cp -r "$DEPENDENCIES_DIR/Library/tools/libpng/"* "$DEPENDENCIES_DIR/Library/bin/"
43+
cp -r "$DEPENDENCIES_DIR/Library/bin/"* "$SRC_PATH/torchvision"
44+
45+
# Source directory
46+
cd "$SRC_PATH" || exit
47+
48+
# Create virtual environment
49+
python -m pip install --upgrade pip
50+
python -m venv .venv
51+
echo "*" > .venv/.gitignore
52+
source .venv/Scripts/activate
53+
54+
# Install dependencies
55+
pip install numpy==2.2.3
56+
57+
if [ "$CHANNEL" = "release" ]; then
58+
echo "Installing latest stable version of PyTorch."
59+
# TODO: update when arm64 torch available on pypi
60+
pip3 install --pre torch --index-url https://download.pytorch.org/whl/torch/
61+
elif [ "$CHANNEL" = "test" ]; then
62+
echo "Installing PyTorch version $PYTORCH_VERSION."
63+
pip3 install --pre torch=="$PYTORCH_VERSION" --index-url https://download.pytorch.org/whl/test
64+
else
65+
echo "CHANNEL is not set, installing PyTorch from nightly."
66+
pip3 install --pre torch --index-url https://download.pytorch.org/whl/nightly/cpu
67+
fi
68+
69+
echo "Dependencies install finished successfully."

setup.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
NVCC_FLAGS = os.getenv("NVCC_FLAGS", None)
2525
# Note: the GPU video decoding stuff used to be called "video codec", which
2626
# isn't an accurate or descriptive name considering there are at least 2 other
27-
# video deocding backends in torchvision. I'm renaming this to "gpu video
27+
# video decoding backends in torchvision. I'm renaming this to "gpu video
2828
# decoder" where possible, keeping user facing names (like the env var below) to
2929
# the old scheme for BC.
3030
USE_GPU_VIDEO_DECODER = os.getenv("TORCHVISION_USE_VIDEO_CODEC", "1") == "1"
@@ -211,7 +211,7 @@ def find_libpng():
211211
subprocess.run([libpng_config, "--version"], stdout=subprocess.PIPE).stdout.strip().decode("utf-8")
212212
)
213213
if png_version < min_version:
214-
warnings.warn("libpng version {png_version} is less than minimum required version {min_version}")
214+
warnings.warn(f"libpng version {png_version} is less than minimum required version {min_version}")
215215
return False, None, None, None
216216

217217
include_dir = (
@@ -448,7 +448,7 @@ def find_ffmpeg_libraries():
448448

449449
extensions.append(
450450
CppExtension(
451-
# This is an aweful name. It should be "cpu_video_decoder". Keeping for BC.
451+
# This is an awful name. It should be "cpu_video_decoder". Keeping for BC.
452452
"torchvision.video_reader",
453453
combined_src,
454454
include_dirs=[

torchvision/datasets/lfw.py

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@ def __init__(
5151
self.data: list[Any] = []
5252

5353
if download:
54+
raise ValueError(
55+
"LFW dataset is no longer available for download."
56+
"Please download the dataset manually and place it in the specified directory"
57+
)
5458
self.download()
5559

5660
if not self._check_integrity():
@@ -90,6 +94,11 @@ def __len__(self) -> int:
9094
class LFWPeople(_LFW):
9195
"""`LFW <http://vis-www.cs.umass.edu/lfw/>`_ Dataset.
9296
97+
.. warning:
98+
99+
The LFW dataset is no longer available for automatic download. Please
100+
download it manually and place it in the specified directory.
101+
93102
Args:
94103
root (str or ``pathlib.Path``): Root directory of dataset where directory
95104
``lfw-py`` exists or will be saved to if download is set to True.
@@ -101,9 +110,7 @@ class LFWPeople(_LFW):
101110
and returns a transformed version. E.g, ``transforms.RandomCrop``
102111
target_transform (callable, optional): A function/transform that takes in the
103112
target and transforms it.
104-
download (bool, optional): If true, downloads the dataset from the internet and
105-
puts it in root directory. If dataset is already downloaded, it is not
106-
downloaded again.
113+
download (bool, optional): NOT SUPPORTED ANYMORE, leave to False.
107114
loader (callable, optional): A function to load an image given its path.
108115
By default, it uses PIL as its image loader, but users could also pass in
109116
``torchvision.io.decode_image`` for decoding image data into tensors directly.
@@ -175,6 +182,11 @@ def extra_repr(self) -> str:
175182
class LFWPairs(_LFW):
176183
"""`LFW <http://vis-www.cs.umass.edu/lfw/>`_ Dataset.
177184
185+
.. warning:
186+
187+
The LFW dataset is no longer available for automatic download. Please
188+
download it manually and place it in the specified directory.
189+
178190
Args:
179191
root (str or ``pathlib.Path``): Root directory of dataset where directory
180192
``lfw-py`` exists or will be saved to if download is set to True.
@@ -186,9 +198,7 @@ class LFWPairs(_LFW):
186198
and returns a transformed version. E.g, ``transforms.RandomRotation``
187199
target_transform (callable, optional): A function/transform that takes in the
188200
target and transforms it.
189-
download (bool, optional): If true, downloads the dataset from the internet and
190-
puts it in root directory. If dataset is already downloaded, it is not
191-
downloaded again.
201+
download (bool, optional): NOT SUPPORTED ANYMORE, leave to False.
192202
loader (callable, optional): A function to load an image given its path.
193203
By default, it uses PIL as its image loader, but users could also pass in
194204
``torchvision.io.decode_image`` for decoding image data into tensors directly.

torchvision/models/detection/mask_rcnn.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ class MaskRCNN(FasterRCNN):
5050
``0 <= x1 < x2 <= W`` and ``0 <= y1 < y2 <= H``.
5151
- labels (Int64Tensor[N]): the predicted labels for each image
5252
- scores (Tensor[N]): the scores or each prediction
53-
- masks (UInt8Tensor[N, 1, H, W]): the predicted masks for each instance, in 0-1 range. In order to
53+
- masks (FloatTensor[N, 1, H, W]): the predicted masks for each instance, in 0-1 range. In order to
5454
obtain the final segmentation masks, the soft masks can be thresholded, generally
5555
with a value of 0.5 (mask >= 0.5)
5656

version.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.22.0a0
1+
0.23.0a0

0 commit comments

Comments
 (0)