ValueError: Caught ValueError in DataLoader worker process 0.

这篇博客主要讨论了在使用PyTorch训练模型时遇到的数据加载错误,特别是ValueError,由于尝试加载包含pickle数据的.npy文件而引发。作者首先尝试修改`allow_pickle`参数,然后详细描述了错误的演变,最终确定问题源于数据集本身。解决方法强调了在复现代码时确保正确数据集路径的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Traceback (most recent call last):
  File "G:/wjy/Eye_VR_Segmentation-master/src/test.py", line 258, in <module>
    print('Val set: ', utils.eval(loaders['val'], model, utils.generalised_dice_loss_ce))
  File "G:\wjy\Eye_VR_Segmentation-master\src\utils.py", line 241, in eval
    for i, sample_batched in enumerate(loader):
  File "C:\Users\06\.conda\envs\vr-torch\lib\site-packages\torch\utils\data\dataloader.py", line 345, in __next__
    data = self._next_data()
  File "C:\Users\06\.conda\envs\vr-torch\lib\site-packages\torch\utils\data\dataloader.py", line 856, in _next_data
    return self._process_data(data)
  File "C:\Users\06\.conda\envs\vr-torch\lib\site-packages\torch\utils\data\dataloader.py", line 881, in _process_data
    data.reraise()
  File "C:\Users\06\.conda\envs\vr-torch\lib\site-packages\torch\_utils.py", line 394, in reraise
    raise self.exc_type(msg)
ValueError: Caught ValueError in DataLoader worker process 0.
Original Traceback (most recent call last):
  File "C:\Users\06\.conda\envs\vr-torch\lib\site-packages\torch\utils\data\_utils\worker.py", line 178, in _worker_loop
    data = fetcher.fetch(index)
  File "C:\Users\06\.conda\envs\vr-torch\lib\site-packages\torch\utils\data\_utils\fetch.py", line 44, in fetch
    data = [self.dataset[idx] for idx in possibly_batched_index]
  File "C:\Users\06\.conda\envs\vr-torch\lib\site-packages\torch\utils\data\_utils\fetch.py", line 44, in <listcomp>
    data = [self.dataset[idx] for idx in possibly_batched_index]
  File "G:\wjy\Eye_VR_Segmentation-master\src\utils.py", line 126, in __getitem__
    npy = np.load(npy_path, allow_pickle=False)
  File "C:\Users\06\.conda\envs\vr-torch\lib\site-packages\numpy\lib\npyio.py", line 445, in load
    raise ValueError("Cannot load file containing pickled data "
ValueError: Cannot load file containing pickled data when allow_pickle=False

最后的错误为:ValueError: Cannot load file containing pickled data when allow_pickle=False

出错代码为:

npy = np.load(npy_path, allow_pickle=False)

首先尝试将allow_pickle=False的False改为True

然后再次报错Failed to interpret file 'XXXXX' as a pickle

最后发现其实还是数据集的问题,复现代码的时候需要关注数据集地址。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值