Exemplo n.º 1
0
def FMNIST(mode="train", download=True):
    # 由于不同数据集区分训练或测试集的方式不同,因此建议数据集以统一的接口定义
    from torchvision.datasets.mnist import FashionMNIST
    from torchvision import transforms
    weak = transforms.ToTensor()
    if mode == "train":
        return FashionMNIST(root=root, train=True, download=download, transform=weak)
    else:
        return FashionMNIST(root=root, train=False, transform=weak, download=download)
Exemplo n.º 2
0
 def __init__(self, mode, transform):
     dataset = FashionMNIST(root=data_path, download=True, train=mode)
     data = getattr(dataset, 'train_data' if mode else 'test_data')
     labels = getattr(dataset, 'train_labels' if mode else 'test_labels')
     self.transform = transform
     self.input_images = np.array(data).astype(np.float)
     self.input_labels = np.array(labels).astype(np.long)
Exemplo n.º 3
0
 def __init__(self, mode):
     dataset = FashionMNIST(root='./data', download=True, train=mode)
     data = getattr(dataset, 'train_data' if mode else 'test_data')
     labels = getattr(dataset, 'train_labels' if mode else 'test_labels')
     input_images = np.array(data).astype(np.float)
     self.input_images = input_images
     self.target_labels = np.array(labels).astype(np.long)
Exemplo n.º 4
0
def get_data_loaders(train_batch_size, val_batch_size):
    data_transform = Compose([ToTensor(), Normalize((0.1307, ), (0.3081, ))])

    train_data = FashionMNIST(download=True,
                              root=".",
                              transform=data_transform,
                              train=True)
    val_data = FashionMNIST(download=False,
                            root=".",
                            transform=data_transform,
                            train=False)

    train_loader = DataLoader(Subset(train_data, range(N_TRAIN_EXAMPLES)),
                              batch_size=train_batch_size,
                              shuffle=True)
    val_loader = DataLoader(Subset(val_data, range(N_VALID_EXAMPLES)),
                            batch_size=val_batch_size,
                            shuffle=False)

    return train_loader, val_loader
def get_iterator(
        mode
):  ## Will be used in the training set, it is kind of a data loader
    ds = FashionMNIST(root=opt['data'], download=True,
                      train=mode)  ##Changed loader to
    data = getattr(
        ds, 'train_data' if mode else 'test_data')  ##Fashion MNIST Loader such
    labels = getattr(ds, 'train_labels' if mode else
                     'test_labels')  ##that it directly downloads the data
    tds = tnt.dataset.TensorDataset([data, labels])
    return tds.parallel(batch_size=opt['b'],
                        num_workers=0,
                        shuffle=mode,
                        pin_memory=True)
"""
Load MNIST dataset from MNSIT and give a dictionary with it's training/validation dataloaders
"""
import torch
from torchvision.datasets.mnist import FashionMNIST
import torchvision.transforms as transforms
from torch.utils.data import DataLoader

data_train = FashionMNIST("./data/fashion_mnist",
                          download=True,
                          train=True,
                          transform=transforms.Compose([
                              transforms.Resize((28, 28)),
                              transforms.ToTensor()
                          ]))

data_val = FashionMNIST("./data/fashion_mnist",
                        train=False,
                        download=True,
                        transform=transforms.Compose([
                            transforms.Resize((28, 28)),
                            transforms.ToTensor()
                        ]))

dataloader_train = DataLoader(data_train,
                              batch_size=1000,
                              shuffle=True,
                              num_workers=8)
dataloader_val = DataLoader(data_val, batch_size=1000, num_workers=8)

dataloaders = {
Exemplo n.º 7
0
import torch.nn as nn
import torch.nn.functional as F
import torch.optim as optim
import torchvision.transforms as transforms
from torch.optim.lr_scheduler import ExponentialLR
from torch.utils.data import DataLoader
from torchvision.datasets.mnist import MNIST, FashionMNIST
from test_models import *
from utils.scheduler import MinExponentialLR

# init dataset
transform = transforms.Compose(
    [transforms.CenterCrop(28),
     transforms.ToTensor()])
train_data = FashionMNIST('../data',
                          train=True,
                          download=True,
                          transform=transform)
test_data = FashionMNIST('../data',
                         train=False,
                         download=True,
                         transform=transform)

# init dataloader
train_data_loader = DataLoader(train_data,
                               batch_size=256,
                               shuffle=True,
                               num_workers=8)
test_data_loader = DataLoader(test_data, batch_size=1024, num_workers=8)

# init models and optimizers
models = [model_a(), model_b(), model_c(), model_d(), model_e()]
Exemplo n.º 8
0
def create_datasets(data_root):
    trainset = FashionMNIST(root = data_root, train = True, download = True, transform = transforms.ToTensor())
    testset = FashionMNIST(root = data_root, train = False, download = True, transform = transforms.ToTensor())
    return trainset, testset
Exemplo n.º 9
0
def fashionmnist(train=True):
    dataset = FashionMNIST(root=root, train=train)
    xs = llist(Image.fromarray(img.numpy(), mode='L') for img in dataset.data)
    ys = llist(int(i) for i in dataset.targets)

    return xs, ys