通道顺序错误引起matplotlib.image.imsave执行报错:raise ValueError(“Third dimension must be 3 or 4“)

本文档记录了在使用MindSpore时遇到的一个问题,即在尝试使用matplotlib保存图像时出现ValueError,提示“Third dimension must be 3 or 4”。问题源于图像的通道顺序不正确,原始图像通道为(3,112,112),而matplotlib要求为(H,W,C)格式。解决方法是利用numpy的transpose函数转换图像通道顺序,从而成功保存图像。
摘要由CSDN通过智能技术生成

1.系统环境

硬件环境(Ascend/GPU/CPU): GPU

软件环境:

– MindSpore 版本: 1.7.0

执行模式: 静态图(GRAPH) – Python 版本: 3.7.6

– 操作系统平台: linux

2.报错信息

2.1 问题描述

将优化好的图像用matplotlib进行图片保存,由于没有将图像的通道进行转换,导致图像保存失败。

2.2 报错信息

raise ValueError("Third dimension must be 3 or 4") ValueError: Third dimension must be 3 or 4

2.3 脚本代码

import matplotlib.image as mp
context.set_context(mode=context.GRAPH_MODE, device_target="GPU")
 
adversarial_tensor, mask_tensor  = adversarial.train(attack_method)
mp.imsave('./对抗图像.jpg', adversarial_tensor.asnumpy())
复制

3.根因分析

 看报错信息ValueError:三维必须是3或4。说明维度的具体值有问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值