Skip to content

datasets phototour.py gives errors #8732

Open
@venkatram-dev

Description

@venkatram-dev

🐛 Describe the bug

datasets phototour.py gives errors.

https://github.com/pytorch/vision/blob/main/torchvision/datasets/phototour.py

import torch
from torchvision.datasets import PhotoTour
from torchvision.transforms import ToTensor

def test_phototour_torchvision():
    # Define the root directory where datasets will be stored
    root = "./datasets"

    # List of datasets to test
    datasets = ["notredame", "yosemite", "liberty"]

    for dataset_name in datasets:
        print(f"\nTesting dataset: {dataset_name}")

        # Initialize the dataset
        dataset = PhotoTour(
            root=root,
            name=dataset_name,
            train=True,
            transform=ToTensor(),
            download=True,  # Download the datasets if not already present
        )

        # Check if the dataset has been loaded successfully
        assert len(dataset) > 0, f"Dataset {dataset_name} is empty!"
        print(f"Number of patches in {dataset_name}: {len(dataset)}")

        # Retrieve a sample
        sample = dataset[0]
        print(f"Sample type for {dataset_name}: {type(sample)}")
        if isinstance(sample, torch.Tensor):
            print(f"Sample shape: {sample.shape}")
        elif isinstance(sample, tuple):
            print(f"Sample components shapes: {[s.shape if isinstance(s, torch.Tensor) else type(s) for s in sample]}")

        # Print the mean and standard deviation of the dataset
        print(f"Mean: {dataset.mean}, Std: {dataset.std}")

        # Access a few samples to verify functionality
        for i in range(min(5, len(dataset))):  # Test first 5 samples
            try:
                data = dataset[i]
                print(f"Sample {i}: {data.shape if isinstance(data, torch.Tensor) else type(data)}")
            except Exception as e:
                print(f"Error accessing sample {i}: {e}")

if __name__ == "__main__":
    test_phototour_torchvision()

Testing dataset: notredame
Traceback (most recent call last):
File "/opt/homebrew/Cellar/[email protected]/3.12.7/Frameworks/Python.framework/Versions/3.12/lib/python3.12/urllib/request.py", line 1344, in do_open
h.request(req.get_method(), req.selector, req.data, headers,
File "/opt/homebrew/Cellar/[email protected]/3.12.7/Frameworks/Python.framework/Versions/3.12/lib/python3.12/http/client.py", line 1336, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/opt/homebrew/Cellar/[email protected]/3.12.7/Frameworks/Python.framework/Versions/3.12/lib/python3.12/http/client.py", line 1382, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "/opt/homebrew/Cellar/[email protected]/3.12.7/Frameworks/Python.framework/Versions/3.12/lib/python3.12/http/client.py", line 1331, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/opt/homebrew/Cellar/[email protected]/3.12.7/Frameworks/Python.framework/Versions/3.12/lib/python3.12/http/client.py", line 1091, in _send_output
self.send(msg)
File "/opt/homebrew/Cellar/[email protected]/3.12.7/Frameworks/Python.framework/Versions/3.12/lib/python3.12/http/client.py", line 1035, in send
self.connect()
File "/opt/homebrew/Cellar/[email protected]/3.12.7/Frameworks/Python.framework/Versions/3.12/lib/python3.12/http/client.py", line 1001, in connect
self.sock = self._create_connection(
^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/[email protected]/3.12.7/Frameworks/Python.framework/Versions/3.12/lib/python3.12/socket.py", line 865, in create_connection
raise exceptions[0]
File "/opt/homebrew/Cellar/[email protected]/3.12.7/Frameworks/Python.framework/Versions/3.12/lib/python3.12/socket.py", line 850, in create_connection
sock.connect(sa)
TimeoutError: [Errno 60] Operation timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/users/pho.py", line 48, in
test_phototour_torchvision()
File "/users/pho.py", line 16, in test_phototour_torchvision
dataset = PhotoTour(
^^^^^^^^^^
File "/users/venv/lib/python3.12/site-packages/torchvision/datasets/phototour.py", line 109, in init
self.download()
File "/users/venv/lib/python3.12/site-packages/torchvision/datasets/phototour.py", line 158, in download
download_url(url, self.root, filename, md5)
File "/users/venv/lib/python3.12/site-packages/torchvision/datasets/utils.py", line 122, in download_url
url = _get_redirect_url(url, max_hops=max_redirect_hops)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/users/venv/lib/python3.12/site-packages/torchvision/datasets/utils.py", line 66, in _get_redirect_url
with urllib.request.urlopen(urllib.request.Request(url, headers=headers)) as response:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/[email protected]/3.12.7/Frameworks/Python.framework/Versions/3.12/lib/python3.12/urllib/request.py", line 215, in urlopen
return opener.open(url, data, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/[email protected]/3.12.7/Frameworks/Python.framework/Versions/3.12/lib/python3.12/urllib/request.py", line 515, in open
response = self._open(req, data)
^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/[email protected]/3.12.7/Frameworks/Python.framework/Versions/3.12/lib/python3.12/urllib/request.py", line 532, in _open
result = self._call_chain(self.handle_open, protocol, protocol +
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/[email protected]/3.12.7/Frameworks/Python.framework/Versions/3.12/lib/python3.12/urllib/request.py", line 492, in _call_chain
result = func(*args)
^^^^^^^^^^^
File "/opt/homebrew/Cellar/[email protected]/3.12.7/Frameworks/Python.framework/Versions/3.12/lib/python3.12/urllib/request.py", line 1373, in http_open
return self.do_open(http.client.HTTPConnection, req)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/[email protected]/3.12.7/Frameworks/Python.framework/Versions/3.12/lib/python3.12/urllib/request.py", line 1347, in do_open
raise URLError(err)
urllib.error.URLError: <urlopen error [Errno 60] Operation timed out>

Versions

Name: torch
Version: 2.5.1

Name: torchvision
Version: 0.20.1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions