【发布时间】:2020-08-26 08:37:18
【问题描述】:
我已经多次使用 pytorch 数据加载器的随机播放选项。但我想知道这种洗牌何时发生以及它是否在迭代期间动态执行。以如下代码为例:
namesDataset = NamesDataset()
namesTrainLoader = DataLoader(namesDataset, batch_size=16, shuffle=True)
for batch_data in namesTrainLoader:
print(batch_data)
当我们定义“namesTrainLoader”时,这是否意味着洗牌已经完成,接下来的迭代将基于固定的数据顺序?定义namesTrainLoader后for循环会不会有随机性?
我试图用一些特殊值替换“batch_data”的一半:
for batch_data in namesTrainLoader:
batch_data[:8] = special_val
pre = model(batch_data)
假设会有无限个epoch,“model”最终会看到“namesTrainLoader”中的所有数据吗?还是“namesTrainLoader”的一半数据实际上丢失给了“model”?
【问题讨论】:
标签: python machine-learning pytorch shuffle dataloader