*My post explains Fashion-MNIST.
FashionMNIST() can use Fashion-MNIST dataset as shown below:
*Memos:
- The 1st argument is
root
(Required-Type:str
orpathlib.Path
). *An absolute or relative path is possible. - The 2nd argument is
train
(Optional-Default:True
-Type:bool
). *If it'sTrue
, train data(60,000 images) is used while if it'sFalse
, test data(10,000 images) is used. - The 3rd argument is
transform
(Optional-Default:None
-Type:callable
). - The 4th argument is
target_transform
(Optional-Default:None
-Type:callable
). - The 5th argument is
download
(Optional-Default:False
-Type:bool
): *Memos:- If it's
True
, the dataset is downloaded from the internet and extracted(unzipped) toroot
. - If it's
True
and the dataset is already downloaded, it's extracted. - If it's
True
and the dataset is already downloaded and extracted, nothing happens. - It should be
False
if the dataset is already downloaded and extracted because it's faster. - You can manually download and extract the dataset(
t10k-images-idx3-ubyte.gz
,t10k-labels-idx1-ubyte.gz
,train-images-idx3-ubyte.gz
andtrain-labels-idx1-ubyte.gz
) from here todata/FashionMNIST/raw/
.
- If it's
from torchvision.datasets import FashionMNIST
train_data = FashionMNIST(
root="data"
)
train_data = FashionMNIST(
root="data",
train=True,
transform=None,
target_transform=None,
download=False
)
test_data = FashionMNIST(
root="data",
train=False
)
len(train_data), len(test_data)
# (60000, 10000)
train_data
# Dataset FashionMNIST
# Number of datapoints: 60000
# Root location: data
# Split: Train
train_data.root
# 'data'
train_data.train
# True
print(train_data.transform)
# None
print(train_data.target_transform)
# None
train_data.download
# <bound method MNIST.download of Dataset FashionMNIST
# Number of datapoints: 60000
# Root location: data
# Split: Train>
len(train_data.classes)
# 10
train_data.classes
# ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat',
# 'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']
train_data[0]
# (<PIL.Image.Image image mode=L size=28x28>, 9)
train_data[1]
# (<PIL.Image.Image image mode=L size=28x28>, 0)
train_data[2]
# (<PIL.Image.Image image mode=L size=28x28>, 0)
train_data[3]
# (<PIL.Image.Image image mode=L size=28x28>, 3)
train_data[4]
# (<PIL.Image.Image image mode=L size=28x28>, 0)
import matplotlib.pyplot as plt
def show_images(data, main_title=None):
plt.figure(figsize=(8, 4))
plt.suptitle(t=main_title, y=1.0, fontsize=14)
for i, (im, lab) in enumerate(data, start=1):
plt.subplot(2, 5, i)
plt.title(label=lab)
plt.imshow(X=im)
if i == 10:
break
plt.tight_layout()
plt.show()
show_images(data=train_data, main_title="train_data")
show_images(data=test_data, main_title="test_data")
Top comments (0)