torch.utils.data.DataLoader(batch_size) 形成矩阵的维度
此处主要关注一维
import torch
from torch.utils.data import Dataset
import numpy as np
class myDataset(Dataset):
def __init__(self):
self.x = np.arange(10)
self.y = np.arange(10)
def __len__(self):
return len(self.x)
def __getitem__(self, idx):
data = {}
data['x'] = self.x[idx]
data['y'] = self.y[idx]
data['zero'] = False
return data
test_dataset = myDataset()
test_loader = torch.utils.data.DataLoader(test_dataset,batch_size=5,shuffle=True)
for input in test_loader:
print("data:{}".format(input))
print(type(input))
catch = torch.tensor([0, 0, 0, 0, 0], dtype=torch.uint8)
print(catch.shape)
输出
data:{'x': tensor([8, 1, 5, 7, 4], dtype=torch.int32), 'y': tensor([8, 1, 5, 7, 4], dtype=torch.int32), 'zero': tensor([0, 0, 0, 0, 0], dtype=torch.uint8)}
data:{'x': tensor([9, 3, 6, 0, 2], dtype=torch.int32), 'y': tensor([9, 3, 6, 0, 2], dtype=torch.int32), 'zero': tensor([0, 0, 0, 0, 0], dtype=torch.uint8)}
<class 'dict'>
torch.Size([5])
若1:
def __getitem__(self, idx):
return self.x[idx]
for input in test_loader:
print(input)
print(type(input))
则输出:
tensor([6, 2, 1, 3, 7], dtype=torch.int32)
<class 'torch.Tensor'>
tensor([4, 9, 5, 0, 8], dtype=torch.int32)
<class 'torch.Tensor'>
若2
def __getitem__(self, idx):
return self.x[idx], self.y[idx]
则输出:
[tensor([3, 4, 9, 6, 1], dtype=torch.int32), tensor([3, 4, 9, 6, 1], dtype=torch.int32)]
<class 'list'>
[tensor([5, 7, 0, 8, 2], dtype=torch.int32), tensor([5, 7, 0, 8, 2], dtype=torch.int32)]
<class 'list'>