Hi, All.
To make experiments more convience, I’ve tried to write a Dataset that can be feeded to dataloader.
However, my dataset can read data correctly while the dataloader distorted the images as follows.
Images in my dataset is 90001616. (gray images)
I want to find out how does dataloader transform the dataset into 9000116*16, but I can’t find the code.
Image in my dataset:
Image in dataloader:
Here is my code:
# training set
transform = transforms.Compose([transforms.Scale(28), transforms.ToTensor(), ])
trainset = USPS(root='./data', train=True, download=False, transform=transform)
# split data
trainloader = torch.utils.data.DataLoader(trainset, batch_size=100, shuffle=False, num_workers=1)
# kernel code in USPS
def load(self):
# process and save as torch files
print('Processing...')
data = sio.loadmat(os.path.join(self.root,'usps_train.mat'))
traindata = torch.from_numpy(data['data'].transpose())
traindata = traindata.view(16,16,-1).permute(2,1,0)
trainlabel = torch.from_numpy(data['labels'])
data = sio.loadmat(os.path.join(self.root,'usps_test.mat'))
testdata = torch.from_numpy(data['data'].transpose())
testdata = testdata.view(16,16,-1).permute(2,1,0)
testlabel = torch.from_numpy(data['labels'])
training_set = (traindata, trainlabel)
test_set = (testdata, testlabel)
with open(os.path.join(self.root, self.training_file), 'wb') as f:
torch.save(training_set, f)
with open(os.path.join(self.root, self.test_file), 'wb') as f:
torch.save(test_set, f)
print('Done!')