Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在每次培训中以相同的顺序处理加载程序中的数据集_Python_Dataset_Pytorch_Training Data_Dataloader - Fatal编程技术网

Python 如何在每次培训中以相同的顺序处理加载程序中的数据集

Python 如何在每次培训中以相同的顺序处理加载程序中的数据集,python,dataset,pytorch,training-data,dataloader,Python,Dataset,Pytorch,Training Data,Dataloader,我想知道如何处理我的数据加载器中的索引,每次训练都是以相同的顺序进行的。我之所以想这样做,是因为我的代码在验证集上保存结果的可视化输出需要很多时间,所以我决定只保存在验证集上看到的前N个示例 但是,当我在验证循环中通过所有批次时: for t, (x, y, indices) in enumerate(dataset['loader_val']) x = x.to(device=device, dtype=dtype) # move to device, e.g. GPU y = y

我想知道如何处理我的数据加载器中的索引,每次训练都是以相同的顺序进行的。我之所以想这样做,是因为我的代码在验证集上保存结果的可视化输出需要很多时间,所以我决定只保存在验证集上看到的前N个示例

但是,当我在验证循环中通过所有批次时:

for t, (x, y, indices) in enumerate(dataset['loader_val'])

  x = x.to(device=device, dtype=dtype)  # move to device, e.g. GPU
  y = y.to(device=device, dtype=dtype)  # move to device, e.g. GPU

  # Obtaining the scores ... -------------------------------------------------------------------
  scores = model(x)

  ......

例如,我的
索引值在第一次迭代时并不总是相同的。自从我在
数据集['loader\u val']上检查后,我确信我的验证集始终具有相同的索引。sampler.index
始终是相同的数组,并且以相同的方式排序。是否有一种方法可以让
enumerate()
始终以相同的方式获取
数据集['loader\u val']
中的索引?

检查修复随机种子是否有助于
导入;火炬。手动种子(0)
。您可以查看再现性指南以了解更多详细信息:您的验证加载程序是否具有
shuffle=True
?谢谢。。这很有效。。只需在for循环之前执行
火炬。手动_seed(0)
,以便始终具有相同的种子。谢谢你的回复。