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)
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)
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)
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 = {
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()]
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
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