Skip to content

Commit 341ca10

Browse files
authored
Merge branch 'main' into patch-1
2 parents f027050 + 09c5ddd commit 341ca10

File tree

8 files changed

+471
-73
lines changed

8 files changed

+471
-73
lines changed

test/test_prototype_datasets_api.py

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -125,21 +125,6 @@ def test_default_config(self, info):
125125

126126
assert info.default_config == default_config
127127

128-
@pytest.mark.parametrize(
129-
"valid_options",
130-
[
131-
pytest.param(None, id="default"),
132-
pytest.param(dict(option=("value",)), id="no_split"),
133-
],
134-
)
135-
def test_default_config_split_train(self, valid_options):
136-
info = make_minimal_dataset_info(valid_options=valid_options)
137-
assert info.default_config.split == "train"
138-
139-
def test_valid_options_split_but_no_train(self):
140-
with pytest.raises(ValueError, match="'train' has to be a valid argument for option 'split'"):
141-
make_minimal_dataset_info(valid_options=dict(split=("test",)))
142-
143128
@pytest.mark.parametrize(
144129
("options", "expected_error_msg"),
145130
[
@@ -208,7 +193,7 @@ def test_default_config(self):
208193
("config", "kwarg"),
209194
[
210195
pytest.param(*(datasets.utils.DatasetConfig(split="test"),) * 2, id="specific"),
211-
pytest.param(make_minimal_dataset_info().default_config, None, id="default"),
196+
pytest.param(DatasetMock().default_config, None, id="default"),
212197
],
213198
)
214199
def test_load_config(self, config, kwarg):
@@ -218,7 +203,7 @@ def test_load_config(self, config, kwarg):
218203

219204
dataset.resources.assert_called_with(config)
220205

221-
(_, call_kwargs) = dataset._make_datapipe.call_args
206+
_, call_kwargs = dataset._make_datapipe.call_args
222207
assert call_kwargs["config"] == config
223208

224209
def test_missing_dependencies(self):

torchvision/prototype/datasets/_builtin/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from .cifar import Cifar10, Cifar100
44
from .clevr import CLEVR
55
from .coco import Coco
6+
from .cub200 import CUB200
67
from .dtd import DTD
78
from .fer2013 import FER2013
89
from .imagenet import ImageNet

torchvision/prototype/datasets/_builtin/cifar.py

Lines changed: 28 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -45,14 +45,32 @@ def __iter__(self) -> Iterator[Tuple[np.ndarray, int]]:
4545

4646

4747
class _CifarBase(Dataset):
48+
_FILE_NAME: str
49+
_SHA256: str
4850
_LABELS_KEY: str
4951
_META_FILE_NAME: str
5052
_CATEGORIES_KEY: str
5153

5254
@abc.abstractmethod
53-
def _is_data_file(self, data: Tuple[str, io.IOBase], *, config: DatasetConfig) -> Optional[int]:
55+
def _is_data_file(self, data: Tuple[str, io.IOBase], *, split: str) -> Optional[int]:
5456
pass
5557

58+
def _make_info(self) -> DatasetInfo:
59+
return DatasetInfo(
60+
type(self).__name__.lower(),
61+
type=DatasetType.RAW,
62+
homepage="https://www.cs.toronto.edu/~kriz/cifar.html",
63+
valid_options=dict(split=("train", "test")),
64+
)
65+
66+
def resources(self, config: DatasetConfig) -> List[OnlineResource]:
67+
return [
68+
HttpResource(
69+
f"https://www.cs.toronto.edu/~kriz/{self._FILE_NAME}",
70+
sha256=self._SHA256,
71+
)
72+
]
73+
5674
def _unpickle(self, data: Tuple[str, io.BytesIO]) -> Dict[str, Any]:
5775
_, file = data
5876
return cast(Dict[str, Any], pickle.load(file, encoding="latin1"))
@@ -84,7 +102,7 @@ def _make_datapipe(
84102
decoder: Optional[Callable[[io.IOBase], torch.Tensor]],
85103
) -> IterDataPipe[Dict[str, Any]]:
86104
dp = resource_dps[0]
87-
dp = Filter(dp, functools.partial(self._is_data_file, config=config))
105+
dp = Filter(dp, functools.partial(self._is_data_file, split=config.split))
88106
dp = Mapper(dp, self._unpickle)
89107
dp = CifarFileReader(dp, labels_key=self._LABELS_KEY)
90108
dp = hint_sharding(dp)
@@ -102,53 +120,24 @@ def _generate_categories(self, root: pathlib.Path) -> List[str]:
102120

103121

104122
class Cifar10(_CifarBase):
123+
_FILE_NAME = "cifar-10-python.tar.gz"
124+
_SHA256 = "6d958be074577803d12ecdefd02955f39262c83c16fe9348329d7fe0b5c001ce"
105125
_LABELS_KEY = "labels"
106126
_META_FILE_NAME = "batches.meta"
107127
_CATEGORIES_KEY = "label_names"
108128

109-
def _is_data_file(self, data: Tuple[str, Any], *, config: DatasetConfig) -> bool:
129+
def _is_data_file(self, data: Tuple[str, Any], *, split: str) -> bool:
110130
path = pathlib.Path(data[0])
111-
return path.name.startswith("data" if config.split == "train" else "test")
112-
113-
def _make_info(self) -> DatasetInfo:
114-
return DatasetInfo(
115-
"cifar10",
116-
type=DatasetType.RAW,
117-
homepage="https://www.cs.toronto.edu/~kriz/cifar.html",
118-
)
119-
120-
def resources(self, config: DatasetConfig) -> List[OnlineResource]:
121-
return [
122-
HttpResource(
123-
"https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz",
124-
sha256="6d958be074577803d12ecdefd02955f39262c83c16fe9348329d7fe0b5c001ce",
125-
)
126-
]
131+
return path.name.startswith("data" if split == "train" else "test")
127132

128133

129134
class Cifar100(_CifarBase):
135+
_FILE_NAME = "cifar-100-python.tar.gz"
136+
_SHA256 = "85cd44d02ba6437773c5bbd22e183051d648de2e7d6b014e1ef29b855ba677a7"
130137
_LABELS_KEY = "fine_labels"
131138
_META_FILE_NAME = "meta"
132139
_CATEGORIES_KEY = "fine_label_names"
133140

134-
def _is_data_file(self, data: Tuple[str, Any], *, config: DatasetConfig) -> bool:
141+
def _is_data_file(self, data: Tuple[str, Any], *, split: str) -> bool:
135142
path = pathlib.Path(data[0])
136-
return path.name == cast(str, config.split)
137-
138-
def _make_info(self) -> DatasetInfo:
139-
return DatasetInfo(
140-
"cifar100",
141-
type=DatasetType.RAW,
142-
homepage="https://www.cs.toronto.edu/~kriz/cifar.html",
143-
valid_options=dict(
144-
split=("train", "test"),
145-
),
146-
)
147-
148-
def resources(self, config: DatasetConfig) -> List[OnlineResource]:
149-
return [
150-
HttpResource(
151-
"https://www.cs.toronto.edu/~kriz/cifar-100-python.tar.gz",
152-
sha256="85cd44d02ba6437773c5bbd22e183051d648de2e7d6b014e1ef29b855ba677a7",
153-
)
154-
]
143+
return path.name == split
Lines changed: 200 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,200 @@
1+
Black_footed_Albatross
2+
Laysan_Albatross
3+
Sooty_Albatross
4+
Groove_billed_Ani
5+
Crested_Auklet
6+
Least_Auklet
7+
Parakeet_Auklet
8+
Rhinoceros_Auklet
9+
Brewer_Blackbird
10+
Red_winged_Blackbird
11+
Rusty_Blackbird
12+
Yellow_headed_Blackbird
13+
Bobolink
14+
Indigo_Bunting
15+
Lazuli_Bunting
16+
Painted_Bunting
17+
Cardinal
18+
Spotted_Catbird
19+
Gray_Catbird
20+
Yellow_breasted_Chat
21+
Eastern_Towhee
22+
Chuck_will_Widow
23+
Brandt_Cormorant
24+
Red_faced_Cormorant
25+
Pelagic_Cormorant
26+
Bronzed_Cowbird
27+
Shiny_Cowbird
28+
Brown_Creeper
29+
American_Crow
30+
Fish_Crow
31+
Black_billed_Cuckoo
32+
Mangrove_Cuckoo
33+
Yellow_billed_Cuckoo
34+
Gray_crowned_Rosy_Finch
35+
Purple_Finch
36+
Northern_Flicker
37+
Acadian_Flycatcher
38+
Great_Crested_Flycatcher
39+
Least_Flycatcher
40+
Olive_sided_Flycatcher
41+
Scissor_tailed_Flycatcher
42+
Vermilion_Flycatcher
43+
Yellow_bellied_Flycatcher
44+
Frigatebird
45+
Northern_Fulmar
46+
Gadwall
47+
American_Goldfinch
48+
European_Goldfinch
49+
Boat_tailed_Grackle
50+
Eared_Grebe
51+
Horned_Grebe
52+
Pied_billed_Grebe
53+
Western_Grebe
54+
Blue_Grosbeak
55+
Evening_Grosbeak
56+
Pine_Grosbeak
57+
Rose_breasted_Grosbeak
58+
Pigeon_Guillemot
59+
California_Gull
60+
Glaucous_winged_Gull
61+
Heermann_Gull
62+
Herring_Gull
63+
Ivory_Gull
64+
Ring_billed_Gull
65+
Slaty_backed_Gull
66+
Western_Gull
67+
Anna_Hummingbird
68+
Ruby_throated_Hummingbird
69+
Rufous_Hummingbird
70+
Green_Violetear
71+
Long_tailed_Jaeger
72+
Pomarine_Jaeger
73+
Blue_Jay
74+
Florida_Jay
75+
Green_Jay
76+
Dark_eyed_Junco
77+
Tropical_Kingbird
78+
Gray_Kingbird
79+
Belted_Kingfisher
80+
Green_Kingfisher
81+
Pied_Kingfisher
82+
Ringed_Kingfisher
83+
White_breasted_Kingfisher
84+
Red_legged_Kittiwake
85+
Horned_Lark
86+
Pacific_Loon
87+
Mallard
88+
Western_Meadowlark
89+
Hooded_Merganser
90+
Red_breasted_Merganser
91+
Mockingbird
92+
Nighthawk
93+
Clark_Nutcracker
94+
White_breasted_Nuthatch
95+
Baltimore_Oriole
96+
Hooded_Oriole
97+
Orchard_Oriole
98+
Scott_Oriole
99+
Ovenbird
100+
Brown_Pelican
101+
White_Pelican
102+
Western_Wood_Pewee
103+
Sayornis
104+
American_Pipit
105+
Whip_poor_Will
106+
Horned_Puffin
107+
Common_Raven
108+
White_necked_Raven
109+
American_Redstart
110+
Geococcyx
111+
Loggerhead_Shrike
112+
Great_Grey_Shrike
113+
Baird_Sparrow
114+
Black_throated_Sparrow
115+
Brewer_Sparrow
116+
Chipping_Sparrow
117+
Clay_colored_Sparrow
118+
House_Sparrow
119+
Field_Sparrow
120+
Fox_Sparrow
121+
Grasshopper_Sparrow
122+
Harris_Sparrow
123+
Henslow_Sparrow
124+
Le_Conte_Sparrow
125+
Lincoln_Sparrow
126+
Nelson_Sharp_tailed_Sparrow
127+
Savannah_Sparrow
128+
Seaside_Sparrow
129+
Song_Sparrow
130+
Tree_Sparrow
131+
Vesper_Sparrow
132+
White_crowned_Sparrow
133+
White_throated_Sparrow
134+
Cape_Glossy_Starling
135+
Bank_Swallow
136+
Barn_Swallow
137+
Cliff_Swallow
138+
Tree_Swallow
139+
Scarlet_Tanager
140+
Summer_Tanager
141+
Artic_Tern
142+
Black_Tern
143+
Caspian_Tern
144+
Common_Tern
145+
Elegant_Tern
146+
Forsters_Tern
147+
Least_Tern
148+
Green_tailed_Towhee
149+
Brown_Thrasher
150+
Sage_Thrasher
151+
Black_capped_Vireo
152+
Blue_headed_Vireo
153+
Philadelphia_Vireo
154+
Red_eyed_Vireo
155+
Warbling_Vireo
156+
White_eyed_Vireo
157+
Yellow_throated_Vireo
158+
Bay_breasted_Warbler
159+
Black_and_white_Warbler
160+
Black_throated_Blue_Warbler
161+
Blue_winged_Warbler
162+
Canada_Warbler
163+
Cape_May_Warbler
164+
Cerulean_Warbler
165+
Chestnut_sided_Warbler
166+
Golden_winged_Warbler
167+
Hooded_Warbler
168+
Kentucky_Warbler
169+
Magnolia_Warbler
170+
Mourning_Warbler
171+
Myrtle_Warbler
172+
Nashville_Warbler
173+
Orange_crowned_Warbler
174+
Palm_Warbler
175+
Pine_Warbler
176+
Prairie_Warbler
177+
Prothonotary_Warbler
178+
Swainson_Warbler
179+
Tennessee_Warbler
180+
Wilson_Warbler
181+
Worm_eating_Warbler
182+
Yellow_Warbler
183+
Northern_Waterthrush
184+
Louisiana_Waterthrush
185+
Bohemian_Waxwing
186+
Cedar_Waxwing
187+
American_Three_toed_Woodpecker
188+
Pileated_Woodpecker
189+
Red_bellied_Woodpecker
190+
Red_cockaded_Woodpecker
191+
Red_headed_Woodpecker
192+
Downy_Woodpecker
193+
Bewick_Wren
194+
Cactus_Wren
195+
Carolina_Wren
196+
House_Wren
197+
Marsh_Wren
198+
Rock_Wren
199+
Winter_Wren
200+
Common_Yellowthroat

0 commit comments

Comments
 (0)