From 591a9177dfe67c4db48c55b8c6832f632f9b8624 Mon Sep 17 00:00:00 2001 From: Lezwon Castelino Date: Sat, 26 Mar 2022 08:00:16 +0530 Subject: [PATCH 01/12] added sbu dataset to prototype --- .../prototype/datasets/_builtin/__init__.py | 1 + .../prototype/datasets/_builtin/sbu.py | 70 +++++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100644 torchvision/prototype/datasets/_builtin/sbu.py diff --git a/torchvision/prototype/datasets/_builtin/__init__.py b/torchvision/prototype/datasets/_builtin/__init__.py index 1a8dc0907a4..fcde3eac9e3 100644 --- a/torchvision/prototype/datasets/_builtin/__init__.py +++ b/torchvision/prototype/datasets/_builtin/__init__.py @@ -14,6 +14,7 @@ from .oxford_iiit_pet import OxfordIITPet from .pcam import PCAM from .sbd import SBD +from .sbu import SBU from .semeion import SEMEION from .stanford_cars import StanfordCars from .svhn import SVHN diff --git a/torchvision/prototype/datasets/_builtin/sbu.py b/torchvision/prototype/datasets/_builtin/sbu.py new file mode 100644 index 00000000000..a7f17e354e1 --- /dev/null +++ b/torchvision/prototype/datasets/_builtin/sbu.py @@ -0,0 +1,70 @@ +import io +from typing import List, Any, Dict, Optional, Tuple + +import numpy as np +from PIL import Image as pil_image +from torchdata.datapipes.iter import IterDataPipe, Demultiplexer, LineReader, HttpReader, Zipper, Mapper +from torchvision.prototype import features +from torchvision.prototype.datasets.utils import Dataset, DatasetInfo, DatasetConfig, OnlineResource, HttpResource +from torchvision.prototype.datasets.utils._internal import hint_sharding, hint_shuffling + + +class SBU(Dataset): + PHOTO_URLS = 0 + PHOTO_CAPTIONS = 1 + + def _make_info(self) -> DatasetInfo: + return DatasetInfo( + name="sbu", + homepage="http://www.cs.virginia.edu/~vicente/sbucaptions/", + ) + + def resources(self, config: DatasetConfig) -> List[OnlineResource]: + return [ + HttpResource( + "http://www.cs.virginia.edu/~vicente/sbucaptions/SBUCaptionedPhotoDataset.tar.gz", + sha256="2bf37d5e1c9e1c6eae7d5103030d58a7f2117fc5e8c6aa9620f0df165acebf09", + ) + ] + + def _classify_files(self, data: Tuple[str, Any]) -> Optional[int]: + path, stream = data + if path.endswith("SBU_captioned_photo_dataset_urls.txt"): + return SBU.PHOTO_URLS + elif path.endswith("SBU_captioned_photo_dataset_captions.txt"): + return SBU.PHOTO_CAPTIONS + else: + return None + + def _make_datapipe( + self, + resource_dps: List[IterDataPipe], + *, + config: DatasetConfig, + ) -> IterDataPipe[Dict[str, Any]]: + + photo_urls_dp, photo_captions_dp = Demultiplexer( + resource_dps[0], 2, self._classify_files, drop_none=True, buffer_size=-1 + ) + + photo_urls_dp = LineReader(photo_urls_dp, decode=True, return_path=False) + photo_urls_dp = HttpReader(photo_urls_dp) + + photo_captions_dp = LineReader(photo_captions_dp, decode=True, return_path=False) + + dp = Zipper(photo_urls_dp, photo_captions_dp) + dp = hint_shuffling(dp) + dp = hint_sharding(dp) + + return Mapper(dp, self._prepare_sample) + + def _prepare_sample(self, sample: Dict[str, Any]) -> Dict[str, Any]: + image, caption = sample + _, image = image + + # TODO: handle missing images + # TODO: check for method to convert to tensor without PIL and Numpy + image = pil_image.open(io.BytesIO(image.data)) + image = np.array(image) + + return {"image": features.Image(image), "caption": caption} From cc40b08027db7f41a2bb97495792e8464ea865d4 Mon Sep 17 00:00:00 2001 From: Lezwon Castelino Date: Sat, 26 Mar 2022 09:13:46 +0530 Subject: [PATCH 02/12] handle missing files --- torchvision/prototype/datasets/_builtin/sbu.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/torchvision/prototype/datasets/_builtin/sbu.py b/torchvision/prototype/datasets/_builtin/sbu.py index a7f17e354e1..6f89fdcd470 100644 --- a/torchvision/prototype/datasets/_builtin/sbu.py +++ b/torchvision/prototype/datasets/_builtin/sbu.py @@ -3,7 +3,8 @@ import numpy as np from PIL import Image as pil_image -from torchdata.datapipes.iter import IterDataPipe, Demultiplexer, LineReader, HttpReader, Zipper, Mapper +from torch.utils.data.datapipes.utils.common import StreamWrapper +from torchdata.datapipes.iter import IterDataPipe, Demultiplexer, LineReader, HttpReader, Zipper, Mapper, Filter from torchvision.prototype import features from torchvision.prototype.datasets.utils import Dataset, DatasetInfo, DatasetConfig, OnlineResource, HttpResource from torchvision.prototype.datasets.utils._internal import hint_sharding, hint_shuffling @@ -53,16 +54,22 @@ def _make_datapipe( photo_captions_dp = LineReader(photo_captions_dp, decode=True, return_path=False) dp = Zipper(photo_urls_dp, photo_captions_dp) + dp = Filter(dp, lambda data: self._filter_by_content_type(data[0][1])) dp = hint_shuffling(dp) dp = hint_sharding(dp) return Mapper(dp, self._prepare_sample) + def _filter_by_content_type(self, stream: StreamWrapper) -> bool: + try: + return stream.headers["Content-Type"] == "image/jpeg" + except Exception: + return False + def _prepare_sample(self, sample: Dict[str, Any]) -> Dict[str, Any]: image, caption = sample _, image = image - # TODO: handle missing images # TODO: check for method to convert to tensor without PIL and Numpy image = pil_image.open(io.BytesIO(image.data)) image = np.array(image) From 0bf01b32e808706b3a795f69c1d679f88580fa9c Mon Sep 17 00:00:00 2001 From: Lezwon Castelino Date: Sun, 27 Mar 2022 20:26:27 +0530 Subject: [PATCH 03/12] create sbu dataset --- test/builtin_dataset_mocks.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/test/builtin_dataset_mocks.py b/test/builtin_dataset_mocks.py index 768177b1c28..55b2fa31556 100644 --- a/test/builtin_dataset_mocks.py +++ b/test/builtin_dataset_mocks.py @@ -1454,3 +1454,19 @@ def usps(info, root, config): fh.write("\n".join(lines).encode()) return num_samples + + +@register_mock +def sbu(info, root, config): + num_samples = 10 + dataset_folder = root / "dataset" + photo_urls_file = "SBU_captioned_photo_dataset_urls.txt" + photo_captions_file = "SBU_captioned_photo_dataset_captions.txt" + with open(dataset_folder / photo_urls_file, "w") as url_file, open(root / photo_captions_file, "w") as caption_file: + urls = [f"https://via.placeholder.com/{random.randint(100, 1000)}.jpg/09f/fff" for _ in range(num_samples)] + captions = [f"Random caption {i} for {url}" for i, url in enumerate(urls)] + url_file.write("\n".join(urls)) + caption_file.write("\n".join(captions)) + + make_tar(root, "SBUCaptionedPhotoDataset.tar.gz", dataset_folder, compression="gz") + return num_samples From 3479fff9ccab9f9304dd6f0d1205b1a17f98e3f6 Mon Sep 17 00:00:00 2001 From: Lezwon Castelino Date: Sun, 27 Mar 2022 22:42:27 +0530 Subject: [PATCH 04/12] added tests --- test/builtin_dataset_mocks.py | 11 ++++++++--- test/test_prototype_builtin_datasets.py | 15 +++++++++++++++ 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/test/builtin_dataset_mocks.py b/test/builtin_dataset_mocks.py index 55b2fa31556..6a9eca62e0c 100644 --- a/test/builtin_dataset_mocks.py +++ b/test/builtin_dataset_mocks.py @@ -1459,12 +1459,17 @@ def usps(info, root, config): @register_mock def sbu(info, root, config): num_samples = 10 - dataset_folder = root / "dataset" + + dataset_folder = pathlib.Path(root).joinpath("dataset") + dataset_folder.mkdir(parents=True) + photo_urls_file = "SBU_captioned_photo_dataset_urls.txt" photo_captions_file = "SBU_captioned_photo_dataset_captions.txt" - with open(dataset_folder / photo_urls_file, "w") as url_file, open(root / photo_captions_file, "w") as caption_file: + with open(dataset_folder.joinpath(photo_urls_file), "w") as url_file, open( + dataset_folder.joinpath(photo_captions_file), "w" + ) as caption_file: urls = [f"https://via.placeholder.com/{random.randint(100, 1000)}.jpg/09f/fff" for _ in range(num_samples)] - captions = [f"Random caption {i} for {url}" for i, url in enumerate(urls)] + captions = [f"Caption {i} for {url}" for i, url in enumerate(urls)] url_file.write("\n".join(urls)) caption_file.write("\n".join(captions)) diff --git a/test/test_prototype_builtin_datasets.py b/test/test_prototype_builtin_datasets.py index 8d51125f41c..fc8d566136a 100644 --- a/test/test_prototype_builtin_datasets.py +++ b/test/test_prototype_builtin_datasets.py @@ -213,3 +213,18 @@ def test_sample_content(self, test_home, dataset_mock, config): assert isinstance(sample["label"], Label) assert sample["image"].shape == (1, 16, 16) + + +@parametrize_dataset_mocks(DATASET_MOCKS["sbu"]) +class TestSBU: + def test_sample_content(self, test_home, dataset_mock, config): + dataset_mock.prepare(test_home, config) + + dataset = datasets.load(dataset_mock.name, **config) + + for sample in dataset: + assert "image" in sample + assert "caption" in sample + + assert isinstance(sample["image"], Image) + assert isinstance(sample["caption"], str) From aab8dbb6dee014316f0257fc41dacbe7bbb6644a Mon Sep 17 00:00:00 2001 From: Lezwon Castelino Date: Tue, 29 Mar 2022 07:30:32 +0530 Subject: [PATCH 05/12] Apply suggestions from code review Co-authored-by: Philip Meier --- .../prototype/datasets/_builtin/sbu.py | 63 ++++++++++++------- 1 file changed, 39 insertions(+), 24 deletions(-) diff --git a/torchvision/prototype/datasets/_builtin/sbu.py b/torchvision/prototype/datasets/_builtin/sbu.py index 6f89fdcd470..3b62b38cbf4 100644 --- a/torchvision/prototype/datasets/_builtin/sbu.py +++ b/torchvision/prototype/datasets/_builtin/sbu.py @@ -20,20 +20,39 @@ def _make_info(self) -> DatasetInfo: homepage="http://www.cs.virginia.edu/~vicente/sbucaptions/", ) + def _preprocess(self, path: pathlib.Path) -> pathlib.Path: + folder = OnlineResource._extract(path) + data_folder = folder / "dataset" + image_folder = data_folder / "images" + image_folder.mkdir() + broken_urls = [] + with open(data_folder / "SBU_captioned_photo_dataset_urls.txt") as fh: + urls = fh.read().splitlines() + for url in tqdm(urls): + try: + HttpResource(url).download(image_folder) + except Exception: + broken_urls.append(url) + + return folder + def resources(self, config: DatasetConfig) -> List[OnlineResource]: return [ HttpResource( "http://www.cs.virginia.edu/~vicente/sbucaptions/SBUCaptionedPhotoDataset.tar.gz", sha256="2bf37d5e1c9e1c6eae7d5103030d58a7f2117fc5e8c6aa9620f0df165acebf09", + preprocess=self._preprocess, ) ] def _classify_files(self, data: Tuple[str, Any]) -> Optional[int]: - path, stream = data - if path.endswith("SBU_captioned_photo_dataset_urls.txt"): - return SBU.PHOTO_URLS - elif path.endswith("SBU_captioned_photo_dataset_captions.txt"): - return SBU.PHOTO_CAPTIONS + path = pathlib.Path(data[0]) + if path.parent.name == "images": + return 0 + elif path.name == "SBU_captioned_photo_dataset_urls.txt": + return 1 + elif path.name == "SBU_captioned_photo_dataset_captions.txt": + return 2 else: return None @@ -44,20 +63,18 @@ def _make_datapipe( config: DatasetConfig, ) -> IterDataPipe[Dict[str, Any]]: - photo_urls_dp, photo_captions_dp = Demultiplexer( - resource_dps[0], 2, self._classify_files, drop_none=True, buffer_size=-1 + images_dp, urls_dp, captions_dp = Demultiplexer( + resource_dps[0], 3, self._classify_files, drop_none=True, buffer_size=INFINITE_BUFFER_SIZE ) - photo_urls_dp = LineReader(photo_urls_dp, decode=True, return_path=False) - photo_urls_dp = HttpReader(photo_urls_dp) - - photo_captions_dp = LineReader(photo_captions_dp, decode=True, return_path=False) + images_dp = hint_shuffling(images_dp) + images_dp = hint_sharding(images_dp) - dp = Zipper(photo_urls_dp, photo_captions_dp) - dp = Filter(dp, lambda data: self._filter_by_content_type(data[0][1])) - dp = hint_shuffling(dp) - dp = hint_sharding(dp) + urls_dp = LineReader(urls_dp, decode=True, return_path=False) + captions_dp = LineReader(captions_dp, decode=True, return_path=False) + anns_dp = Zipper(urls_dp, captions_dp) + dp = IterKeyZipper(images_dp, anns_dp, path_accessor("name"), buffer_size=INFINITE_BUFFER_SIZE) return Mapper(dp, self._prepare_sample) def _filter_by_content_type(self, stream: StreamWrapper) -> bool: @@ -66,12 +83,10 @@ def _filter_by_content_type(self, stream: StreamWrapper) -> bool: except Exception: return False - def _prepare_sample(self, sample: Dict[str, Any]) -> Dict[str, Any]: - image, caption = sample - _, image = image - - # TODO: check for method to convert to tensor without PIL and Numpy - image = pil_image.open(io.BytesIO(image.data)) - image = np.array(image) - - return {"image": features.Image(image), "caption": caption} + def _prepare_sample(self, data: Tuple[Tuple[str, BinaryIO], Tuple[str, str]]) -> Dict[str, Any]: + (path, buffer), (_, caption) = data + return dict( + path=path, + image=EncodedImage.from_file(buffer), + caption=caption.strip(), + ) From 5729c3f2beeecf5128c2342f47cf69c1b971f259 Mon Sep 17 00:00:00 2001 From: Lezwon Castelino Date: Tue, 29 Mar 2022 13:13:32 +0530 Subject: [PATCH 06/12] handle missing images --- test/test_prototype_builtin_datasets.py | 4 +- .../prototype/datasets/_builtin/sbu.py | 43 +++++++++++-------- 2 files changed, 28 insertions(+), 19 deletions(-) diff --git a/test/test_prototype_builtin_datasets.py b/test/test_prototype_builtin_datasets.py index fc8d566136a..4b2e00b698c 100644 --- a/test/test_prototype_builtin_datasets.py +++ b/test/test_prototype_builtin_datasets.py @@ -13,7 +13,7 @@ from torchvision._utils import sequence_to_str from torchvision.prototype import transforms, datasets from torchvision.prototype.datasets.utils._internal import INFINITE_BUFFER_SIZE -from torchvision.prototype.features import Image, Label +from torchvision.prototype.features import EncodedImage, Label, Image assert_samples_equal = functools.partial( assert_equal, pair_types=(TensorLikePair, ObjectPair), rtol=0, atol=0, equal_nan=True @@ -226,5 +226,5 @@ def test_sample_content(self, test_home, dataset_mock, config): assert "image" in sample assert "caption" in sample - assert isinstance(sample["image"], Image) + assert isinstance(sample["image"], EncodedImage) assert isinstance(sample["caption"], str) diff --git a/torchvision/prototype/datasets/_builtin/sbu.py b/torchvision/prototype/datasets/_builtin/sbu.py index 3b62b38cbf4..19d3377007f 100644 --- a/torchvision/prototype/datasets/_builtin/sbu.py +++ b/torchvision/prototype/datasets/_builtin/sbu.py @@ -1,13 +1,16 @@ -import io -from typing import List, Any, Dict, Optional, Tuple - -import numpy as np -from PIL import Image as pil_image -from torch.utils.data.datapipes.utils.common import StreamWrapper -from torchdata.datapipes.iter import IterDataPipe, Demultiplexer, LineReader, HttpReader, Zipper, Mapper, Filter -from torchvision.prototype import features +import pathlib +from typing import List, Any, Dict, Optional, Tuple, BinaryIO + +from torch.utils.model_zoo import tqdm +from torchdata.datapipes.iter import IterDataPipe, Demultiplexer, LineReader, Zipper, Mapper, IterKeyZipper from torchvision.prototype.datasets.utils import Dataset, DatasetInfo, DatasetConfig, OnlineResource, HttpResource -from torchvision.prototype.datasets.utils._internal import hint_sharding, hint_shuffling +from torchvision.prototype.datasets.utils._internal import ( + hint_sharding, + hint_shuffling, + INFINITE_BUFFER_SIZE, + path_accessor, +) +from torchvision.prototype.features import EncodedImage class SBU(Dataset): @@ -20,7 +23,7 @@ def _make_info(self) -> DatasetInfo: homepage="http://www.cs.virginia.edu/~vicente/sbucaptions/", ) - def _preprocess(self, path: pathlib.Path) -> pathlib.Path: + def _preprocess(self, path: pathlib.Path) -> pathlib.Path: folder = OnlineResource._extract(path) data_folder = folder / "dataset" image_folder = data_folder / "images" @@ -28,13 +31,25 @@ def _preprocess(self, path: pathlib.Path) -> pathlib.Path: broken_urls = [] with open(data_folder / "SBU_captioned_photo_dataset_urls.txt") as fh: urls = fh.read().splitlines() + + # TODO: Use workers to download images for url in tqdm(urls): try: + # TODO: suppress print statements within HttpResource.download() HttpResource(url).download(image_folder) except Exception: broken_urls.append(url) - return folder + if broken_urls: + print(f"Failed to download {len(broken_urls)} images") + self._write_broken_urls_to_file(broken_urls, data_folder) + + return data_folder + + def _write_broken_urls_to_file(self, broken_urls, data_folder): + with open(data_folder / "missing.txt", "w") as fh: + fh.write("\n".join(broken_urls)) + print("Missing images are logged at:", data_folder / "missing.txt") def resources(self, config: DatasetConfig) -> List[OnlineResource]: return [ @@ -77,12 +92,6 @@ def _make_datapipe( dp = IterKeyZipper(images_dp, anns_dp, path_accessor("name"), buffer_size=INFINITE_BUFFER_SIZE) return Mapper(dp, self._prepare_sample) - def _filter_by_content_type(self, stream: StreamWrapper) -> bool: - try: - return stream.headers["Content-Type"] == "image/jpeg" - except Exception: - return False - def _prepare_sample(self, data: Tuple[Tuple[str, BinaryIO], Tuple[str, str]]) -> Dict[str, Any]: (path, buffer), (_, caption) = data return dict( From 36c3af2408d5ad9624c2c977ae55f39576b8e2f8 Mon Sep 17 00:00:00 2001 From: Lezwon Castelino Date: Tue, 29 Mar 2022 16:36:24 +0530 Subject: [PATCH 07/12] fixed type check --- torchvision/prototype/datasets/_builtin/sbu.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/torchvision/prototype/datasets/_builtin/sbu.py b/torchvision/prototype/datasets/_builtin/sbu.py index 19d3377007f..e1782137334 100644 --- a/torchvision/prototype/datasets/_builtin/sbu.py +++ b/torchvision/prototype/datasets/_builtin/sbu.py @@ -46,7 +46,7 @@ def _preprocess(self, path: pathlib.Path) -> pathlib.Path: return data_folder - def _write_broken_urls_to_file(self, broken_urls, data_folder): + def _write_broken_urls_to_file(self, broken_urls, data_folder) -> None: with open(data_folder / "missing.txt", "w") as fh: fh.write("\n".join(broken_urls)) print("Missing images are logged at:", data_folder / "missing.txt") From c04b56c96934eae1bb9882dc36c822ee75253a6a Mon Sep 17 00:00:00 2001 From: Lezwon Castelino Date: Tue, 29 Mar 2022 17:11:44 +0530 Subject: [PATCH 08/12] fixed type check in args --- torchvision/prototype/datasets/_builtin/sbu.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/torchvision/prototype/datasets/_builtin/sbu.py b/torchvision/prototype/datasets/_builtin/sbu.py index e1782137334..44bba7847c7 100644 --- a/torchvision/prototype/datasets/_builtin/sbu.py +++ b/torchvision/prototype/datasets/_builtin/sbu.py @@ -46,7 +46,7 @@ def _preprocess(self, path: pathlib.Path) -> pathlib.Path: return data_folder - def _write_broken_urls_to_file(self, broken_urls, data_folder) -> None: + def _write_broken_urls_to_file(self, broken_urls: List, data_folder: pathlib.Path) -> None: with open(data_folder / "missing.txt", "w") as fh: fh.write("\n".join(broken_urls)) print("Missing images are logged at:", data_folder / "missing.txt") From c1518abffdb36f04eab0969b50712132be05cabc Mon Sep 17 00:00:00 2001 From: Lezwon Castelino Date: Tue, 29 Mar 2022 17:37:08 +0530 Subject: [PATCH 09/12] fix failing unit test --- test/builtin_dataset_mocks.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/builtin_dataset_mocks.py b/test/builtin_dataset_mocks.py index 6a9eca62e0c..f14d0f0f1c0 100644 --- a/test/builtin_dataset_mocks.py +++ b/test/builtin_dataset_mocks.py @@ -1468,7 +1468,7 @@ def sbu(info, root, config): with open(dataset_folder.joinpath(photo_urls_file), "w") as url_file, open( dataset_folder.joinpath(photo_captions_file), "w" ) as caption_file: - urls = [f"https://via.placeholder.com/{random.randint(100, 1000)}.jpg/09f/fff" for _ in range(num_samples)] + urls = [f"https://via.placeholder.com/{random.randint(100, 1000)}.jpg" for _ in range(num_samples)] captions = [f"Caption {i} for {url}" for i, url in enumerate(urls)] url_file.write("\n".join(urls)) caption_file.write("\n".join(captions)) From dae1727cbf1a6cb1910301045829276c4c42ac6d Mon Sep 17 00:00:00 2001 From: Lezwon Castelino Date: Wed, 30 Mar 2022 18:28:18 +0530 Subject: [PATCH 10/12] Apply suggestions from code review Co-authored-by: Philip Meier --- torchvision/prototype/datasets/_builtin/sbu.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/torchvision/prototype/datasets/_builtin/sbu.py b/torchvision/prototype/datasets/_builtin/sbu.py index 44bba7847c7..7bf91052152 100644 --- a/torchvision/prototype/datasets/_builtin/sbu.py +++ b/torchvision/prototype/datasets/_builtin/sbu.py @@ -40,16 +40,16 @@ def _preprocess(self, path: pathlib.Path) -> pathlib.Path: except Exception: broken_urls.append(url) - if broken_urls: - print(f"Failed to download {len(broken_urls)} images") - self._write_broken_urls_to_file(broken_urls, data_folder) - - return data_folder + if broken_urls: + broken_urls_file = folder.parent / "broken_urls.txt" + warnings.warn( + f"Failed to download {len(broken_urls)} ({len(broken_urls) / len(urls):.2%}) images. " + f"They are logged in {broken_urls_file}." + ) + with open(broken_urls_file, "w") as fh: + fh.write("\n".join(broken_urls) + "\n") - def _write_broken_urls_to_file(self, broken_urls: List, data_folder: pathlib.Path) -> None: - with open(data_folder / "missing.txt", "w") as fh: - fh.write("\n".join(broken_urls)) - print("Missing images are logged at:", data_folder / "missing.txt") + return folder def resources(self, config: DatasetConfig) -> List[OnlineResource]: return [ From 91bd94f6dd5cd1da7f03e42a6b8f1bc59be10db3 Mon Sep 17 00:00:00 2001 From: Lezwon Castelino Date: Wed, 30 Mar 2022 18:43:09 +0530 Subject: [PATCH 11/12] imported warnings --- torchvision/prototype/datasets/_builtin/sbu.py | 1 + 1 file changed, 1 insertion(+) diff --git a/torchvision/prototype/datasets/_builtin/sbu.py b/torchvision/prototype/datasets/_builtin/sbu.py index 7bf91052152..63ee3ddf827 100644 --- a/torchvision/prototype/datasets/_builtin/sbu.py +++ b/torchvision/prototype/datasets/_builtin/sbu.py @@ -1,4 +1,5 @@ import pathlib +import warnings from typing import List, Any, Dict, Optional, Tuple, BinaryIO from torch.utils.model_zoo import tqdm From 083b3eed3a15088b4c84e4d77fcee4ce2c848510 Mon Sep 17 00:00:00 2001 From: Lezwon Castelino Date: Tue, 5 Apr 2022 07:23:02 +0530 Subject: [PATCH 12/12] Apply suggestions from code review Co-authored-by: Nicolas Hug --- torchvision/prototype/datasets/_builtin/sbu.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/torchvision/prototype/datasets/_builtin/sbu.py b/torchvision/prototype/datasets/_builtin/sbu.py index 63ee3ddf827..a5884a3f29d 100644 --- a/torchvision/prototype/datasets/_builtin/sbu.py +++ b/torchvision/prototype/datasets/_builtin/sbu.py @@ -15,8 +15,6 @@ class SBU(Dataset): - PHOTO_URLS = 0 - PHOTO_CAPTIONS = 1 def _make_info(self) -> DatasetInfo: return DatasetInfo(