- 新版直接传入参数Data.TensorDataset(x, y)
- 没有GPU的num_workers=2会报错,默认使用0。num_workers:用于数据加载的子进程数目,默认0
import torch
import torch.utils.data as Data
# 批训练数据的大小
BATCH_SIZE = 5
x = torch.linspace(1, 10, 10)
y = torch.linspace(10, 1, 10)
# 新版中TensorDataset直接传入参数即可
# torch_dataset = Data.TensorDataset(data_tensor=x, target_tensor=y)
# 转化为torch可以识别的dataset
torch_dataset = torch.utils.data.TensorDataset(x, y)
# 数据加载器,组合数据集和采样器
loader = Data.DataLoader(
dataset=torch_dataset,
batch_size=BATCH_SIZE,
shuffle=True,
# num_workers=2 设置为2之后用不了,貌似是因为需要在GPU上运行
)
# 总共将10个数据训练三次,在每一次中将数据批量为5个一次,因此在一个epoch中会有两次step
for epoch in range(3):
# enumerate可返回列表元素和键值的函数
for step, (batch_x, batch_y) in enumerate(loader):
print(epoch, step, batch_x, batch_y)