机器学习报错解决2——ValueError: too many values to unpack (expected 3)

这篇具有很好参考价值的文章主要介绍了机器学习报错解决2——ValueError: too many values to unpack (expected 3)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

参考资料:蔚蓝呆鸟

在我学习Pytorch的PIL模块的过程中,运行了如下代码:

from PIL import Image
a = Image.open('Avengers.jpeg')
ra, ga, ba = a.split() # 把图像分割为R,G,B三个通道图像
ra.save("R.jpg")
ga.save("G.jpg")
ba.save("B.jpg")

大致意思是将一张RGB图片分成R、G、B三个通道,并分别将每个通道的图片保存下来。

但是出现了如下的报错:

too many values to unpack (expected 3),# Pytorch Error,机器学习,人工智能,python,计算机视觉,pycharm

ValueError: too many values to unpack (expected 3)

翻译一下就是用来接收的变量数与函数需要接收的变量数不一致。

我查找了好久的博客,终于找到一篇博客问题描述与我的相符(就是参考资料后面给的链接)

问题在于,'Avengers.jpeg’这张图片的通道不一定只有三个!

于是我在第二行之后加一行代码:

print(a.mode, a.size, a.format)

输出结果为:

RGBA (600, 299) PNG

这里输出的是RGBA而不是RGB!RGBA模式有四种颜色通道,所以应该由四个变量去接收。

修改后的代码如下:

from PIL import Image
a = Image.open('Avengers.jpeg')
print(a.mode, a.size, a.format)
ra, ga, ba, aa = a.split()  # 把图像分割为R,G,B三个通道图像
ra.save("R.jpg")
ga.save("G.jpg")
ba.save("B.jpg")
aa.save("A.jpg")

运行结果:该目录的文件夹内新增加了四张图片,但是除了‘A.jpg’是白色图片以外,另外三张图片都是灰色(我猜是灰度图,保存的时候只保存了一个数字值,然后系统默认为只有一个通道的灰度图)

too many values to unpack (expected 3),# Pytorch Error,机器学习,人工智能,python,计算机视觉,pycharm

我目前没有找到解决办法,于是调用pylab模块

from PIL import Image
from pylab import subplot, imshow, show
a = Image.open('Avengers.jpeg')
ra, ga, ba, aa = a.split()  # 把图像分割为R,G,B三个通道图像
subplot(221)
imshow(ra)
subplot(222)
imshow(ga)
subplot(223)
imshow(ba)
subplot(224)
imshow(aa)
show()

运行结果:

too many values to unpack (expected 3),# Pytorch Error,机器学习,人工智能,python,计算机视觉,pycharm文章来源地址https://www.toymoban.com/news/detail-785722.html

到了这里,关于机器学习报错解决2——ValueError: too many values to unpack (expected 3)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 解决报错ValueError: not enough values to unpack (expected 3, got 2)

    错误提示: 在使用opencv进行关键点识别、边缘轮廓提取的时候,提示以上错误,报错原因是函数定义的返回值数量和调用函数时实际赋予的返回值数量不一致。导致这个问题,实际是因为opencv版本不一致引起的,新版opencv(opencv4)在调用findContours时只需要两个参数,需要删

    2024年02月11日
    浏览(33)
  • Mysql报错:too many connections原因及解决方法

    1、原因是mysql连接数过多 解决方案: 1、linux登录mysql: 2、查看mysql允许的最大连接数 3、查看这次mysql服务启动到现在,同一时刻最多mysql有多少连接 4、修改mysql最大连接数 5、以上步骤修改后虽然能登录,但仍有隐患,我们应该把那些sleep的连接杀掉 (1)查看所有连接状态

    2024年02月10日
    浏览(43)
  • Error connecting to MySQL: Too many connections(code 1040)的错误解决方法

    今天前端在调试接口时,报出 Too many connections 的错误。 于是,打开出 MySQL 数据库,报出的错误如下图所示: 即 Error connecting to MySQL: Too many connections(code 1040) 。 正赶上最近 ChatGPT 比较火,借助他来解决我的错误: ChatGPT 建议我增加 MySQL 的连接数,但首先通过如下命令查看连

    2024年02月03日
    浏览(76)
  • K8S如何部署ZooKeeper(续)-- Too many connections报错解决

    在上一篇文章中(K8S如何部署ZooKeeper以及如何进行ZooKeeper的平滑替换)我们已经成功部署了ZooKeeper,但是真正切换时,报错如下 在相关服务未迁移K8S时,各个服务都是散落在不同的服务器上的。而当迁移到K8S时,为了方便管理,对服务器进行了重新规划,同一个项目组使用相

    2024年02月01日
    浏览(32)
  • 解决TortoiseGit软件Git Show log时显示Too many files to display的问题

    有时代码提交修改的文件比较多,当查看log时无法显示出来修改的文件列表,如下所示: 将LogTooManyItemsThreshold尽可能配置得大一些。 https://gitlab.com/tortoisegit/tortoisegit/-/issues/3878

    2024年04月12日
    浏览(26)
  • Data source rejected establishment of connection message from server:“Too many connections“; 数据库报错解决

    报错时的情况: 报错时我使用了微服务项目中使用Dubbo来进行管理, 然后同时启动了几个项目来进行数据库操作就会发生报错, 但是执行单个项目模块时是可以进行数据库操作的 ,具体报错信息忘记截图了, 可以看下面这个链接中的报错信息描述MYSQL Too many connections错误的解决办

    2024年02月06日
    浏览(32)
  • ES执行报错:too_many_clause

    问题原因: bool 查询拼接太多了,有一个拼接上限,es默认设置为1024 解决方法:

    2024年02月12日
    浏览(65)
  • 导入失败,报错:“too many filtered rows xxx, “ErrorURL“:“

    一、问题: 注:前面能正常写入,突然就报错,导入失败,报错:“too many filtered rows xxx, \\\"ErrorURL\\\":\\\" {\\\"TxnId\\\":769494,\\\"Label\\\":\\\"datax_doris_writer_bf176078-15d7-414f-8923-b0eb5f6d5da1\\\",\\\"TwoPhaseCommit\\\":\\\"false\\\",\\\"Status\\\":\\\"Fail\\\",\\\"Message\\\":\\\" [INTERNAL_ERROR]too many filtered rows\\\",\\\" NumberTotalRows\\\":325476,\\\"NumberLoadedRows\\\":325473,\\\"

    2024年01月18日
    浏览(31)
  • PostgreSQL 连接数过多报错(too many clients already)

    在使用 Navicat 连接 PostgreSQL 数据库时,突然遭遇到了一个报错:“FATAL: sorry, too many clients already”。这一错误提示表明数据库连接数已经达到上限,无法再创建新连接。为了解决这一问题,我采取了一系列查询和配置调整的步骤,从数据库和程序连接池两个方面入手。 数据库

    2024年02月21日
    浏览(31)
  • ERROR > ES : too_many_clauses: maxClauseCount is set to 1024

    ES 在查询 Elasticseach 时,报错: 原因可能有2种,分别是: 1、查询语句中的 bool 查询的 条件 过多 2、查询语句中的 bool 查询的 字符 过多 相应的解决方法: 1、拆分查询语句中的 bool 查询条件,修改为多个小的 bool 条件组合的方式 2、在 elasticsearch.yml 配置中调大对 bool 的限制

    2024年02月11日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包