(十七)从划分编号取得实际批次
# 续写同一文件:training_project/src/readingtorch/data.py
def make_loader(bundle, name, batch_size=24, generator=None):
# Subset 保存样本编号,验证与测试按固定顺序读取。
subset = Subset(ArrayDataset(bundle.x, bundle.y), bundle.splits[name].tolist())
return DataLoader(
subset,
batch_size=batch_size,
shuffle=name == "train",
generator=generator,
num_workers=0,
)Subset 把指定编号映射到原 Dataset,不必再手动复制三套输入。训练组打乱,验证和测试按固定顺序读取;num_workers=0 让这份小数据直接由当前进程加载,便于观察每次取值。
回归每批得到 (B,2) 输入与 (B,1) 目标;图形每批得到 (B,1,8,8) 输入与 (B,) 目标。后面每种模型与损失都要与这两个约定对应。