DEV Community

Super Kai (Kazuya Ito)
Super Kai (Kazuya Ito)

Posted on • Edited on

FashionMNIST in PyTorch

Buy Me a Coffee

*Memos:

FashionMNIST() can use Fashion-MNIST dataset as shown below:

*Memos:

  • The 1st argument is root(Required-Type:str or pathlib.Path). *An absolute or relative path is possible.
  • The 2nd argument is train(Optional-Default:True-Type:bool). *If it's True, train data(60,000 images) is used while if it's False, 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) to root.
    • 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 and train-labels-idx1-ubyte.gz) from here to data/FashionMNIST/raw/.
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), train_data.classes # (10, # ['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=(10, 5)) plt.suptitle(t=main_title, y=1.0, fontsize=14) for i, (im, lab) in zip(range(1, 11), data): plt.subplot(2, 5, i) plt.imshow(X=im) plt.title(label=lab) plt.tight_layout() plt.show() show_images(data=train_data, main_title="train_data") show_images(data=test_data, main_title="test_data") 
Enter fullscreen mode Exit fullscreen mode

Image description

Image description

Top comments (0)