pytorch报错:ValueError: num_samples should be a positive integer value, but got num_samples=0

报错场景

调试时发现这段代码报错

train_loader = DataLoader(dataset=train_dataset, batch_size=args.batch_size,
                              shuffle=True, drop_last=True, num_workers=args.loader_workers, pin_memory=True)

报错输出:

Traceback (most recent call last):
  File "end2end.py", line 75, in <module>
    main(config, mydevice)
  File "end2end.py", line 33, in main
    shuffle=True, drop_last=True, num_workers=args.loader_workers, pin_memory=True)
  File "/data/yiheng_huang/miniconda3/envs/StyleGesture/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 270, in __init__
    sampler = RandomSampler(dataset, generator=generator)  # type: ignore[arg-type]
  File "/data/yiheng_huang/miniconda3/envs/StyleGesture/lib/python3.7/site-packages/torch/utils/data/sampler.py", line 103, in __init__
    "value, but got num_samples={}".format(self.num_samples))
ValueError: num_samples should be a positive integer value, but got num_samples=0

报错原因

这时很疑惑,这不是官方的dataloader很正常地调用吗?之后在其他博主的评论区找到了答案,可能因为len(dataset)=0!

然后pdb发现 len(train_dataset)确实为0, 由于之前调试quit导致数据没处理好导致的,debug完成。

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值