ValueError: Caught ValueError in DataLoader worker process 0、 too many values to unpack (expected 9)

本文讲述了作者在处理数据加载时遇到的两个常见错误:ValueError:CaughtValueErrorinDataLoaderworkerprocess0和toomanyvaluestounpack(expected9)。文章分析了原因,如数据集中断导致的不完整数据和代码逻辑问题,并给出了针对性的解决策略。
摘要由CSDN通过智能技术生成

前言:对于我遇到的问题而言:“ValueError: Caught ValueError in DataLoader worker process 0”只是表象,“ too many values to unpack (expected 9)”才是内核

1、ValueError: Caught ValueError in DataLoader worker process 0

对于第一种类型,搜索查看的其他博客都说是因为
(1)之前拷贝数据集的时候中断过,数据出了问题
(2)检查数据集拷贝是否完整,检查后发现数据特征拷贝由于进程中断,数据包大小比完整的小,故报错需重新拷贝完整数据

然后我照着从出现问题的代码语句出发往上回溯,找DataLoader语句,找到了对应的文件,但发现它们都能正常读取,还能获取他们的形状,如下图所示:
在这里插入图片描述

2、 too many values to unpack (expected 9)

对于第二种类型,有个博客说是setuptools包的版本太高导致的,降低版本后问题成功解决。
但是我觉得我遇到的情况应该不一样吧,没有去尝试

3、解决办法

还是抓住第二点的问题,寻找Python报错too many values to unpack的解决办法,然后找到了一篇讲代码问题的,如下,:
类似将一个包含3个keydict中间变量赋值给了一个2个元素list

#错误代码
tmp_d={'a':2, 'b':3, 'c':4 }
var_a, var_b = tmp_b
#需要注意的是,以下代码是正确的
tmp_d={'a':2, 'b' :3}
var_a, var_b = tmp_d
我的代码问题是一个数据变量包含10个变量,代码的对应语句只赋值给了9个变量,因此报错!

附上链接: too many values to unpack (expected 9)

4、总结

改bug虽然需要多尝试别人不同的解决办法,但是也要注意
1、你对自己代码报错的原因(可能是猜的)越了解,建议边搜边查边猜,这样你在搜索的时候就越有针对性
2、你对正在调试运行的代码也要有一定的了解,啥也不懂的话,碰到代码逻辑语法相关的也很难解决

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值