ValueError: mode mismatch
项目场景:PIL库Image模块处理数组合并成3通道RGB图像
项目中,使用Pytorch的torch.utils.data.DataLoader加载自己准备好的数据集。同时想要直观查看或验证生成的数据是否正确。通过直观展示数据–训练数据和标签–来验证数据集。
自定义的数据集是使用PIL库的Image.open读取的图像数据。还是用它来展示验证数据。测试代码如下:
if __name__ == "__main__":import timefrom PIL import ImageplayPhoneData = PlayPhoneData("E:/Datasets/玩手机")# 利用dataloader加载数据集train_loader = torch.utils.data.DataLoader(playPhoneData, batch_size=1, shuffle=True, drop_last=True)# 展示和验证数据for i, (inputs, labels) in enumerate(train_loader, 0):print(i, inputs[0].shape, labels)# array = inputs[0]im1 = Image.fromarray(256 * inputs[0][0].numpy())im2 = Image.fromarray(256 * inputs[0][1].numpy())im3 = Image.fromarray(256 * inputs[0][2].numpy())im = Image.merge("RGB", [im1, im2, im3])im.show("i")break
问题描述:ValueError: mode mismatch
代码中:im1 = Image.fromarray(256 * inputs[0][0].numpy())
的inputs
是数据集1个batch的图像。inputs[0]
表示batch中取第一副图像。inputs[0][0]
表示该图像的一个通道。.numpy()
是将tensor转换成数组。256 *
是因为生成图像数据集石对图像做了归一化处理,需要还原。
im1,im2,im3
分别表示3个通道,通过merge
函数将他们还原成3通道彩色图像。运行时,报错分析:
- 首先,每一个通道单独展示正常。
- 合并数据时会报错,ValueError: mode mismatch,或者数组数据没有model属性。
原因分析:
转化的im1,im2,im3
3个通道数组没有定义图像模式,需要明确定义model.需要im1,im2,im3
调用convert设置图像模式。
解决方案:
使用im1.convert('L')
定义图像模式。
im1 = Image.fromarray(256 * inputs[0][0].numpy()).convert('L')
im2 = Image.fromarray(256 * inputs[0][1].numpy()).convert('L')
im3 = Image.fromarray(256 * inputs[0][2].numpy()).convert('L')
ValueError: mode mismatch相关推荐
- ValueError: Shape mismatch: The shape of labels (received (768,)) should equal the shape of logits e
问题 运行tensorflow 的resnet网络,预测结果,出现报错 ValueError: Shape mismatch: The shape of labels (received (768,) ...
- 成功解决 ValueError: feature_names mismatch training data did not have the following fields
成功解决 ValueError: feature_names mismatch training data did not have the following fields 目录 解决问题 解决思路 ...
- 已解决ValueError: Length mismatch: Expected axis has 5 elements, new values have 4 elements
已解决ValueError: Length mismatch: Expected axis has 5 elements, new values have 4 elements 文章目录 报错代码 报 ...
- valueError: Length mismatch: Expected axis has 40 elements, new values have 38 elements
背景 我拿原来的模型准备跑一个新数据集,当然列就会不同 新数据集没有head,我就自己傻乎乎一个一个数的列数(应该是数错了 我原来数的38其实是40) 就报了valueError: Length mi ...
- ValueError: Length mismatch: Expected axis has 2 elements, new values have 1 elements
解决办法: 加红部分没写 index_col=0 --第一列为index值
- ValueError: Length mismatch: Expected axis has 4 elements, new values have 3 elements
from sklearn.decomposition import PCA from sklearn import datasets from sklearn import preprocessing ...
- 机器学习平台系列——XGB feature_names mismatch 问题解决方案
最近开发公司的机器学习平台的XGBoost控件.结果报了一个bug,说"feature_names mismatch". 现在我们来复现这个bug: import xgboost ...
- dataframe,python,numpy 问题索引2
20220330 print(frame3.isnull().any()) 找出存在空值的列 print("========================") print(fra ...
- tensorflow问题
20210121 ImportError: No module named 'tensorflow.python' https://stackoverflow.com/questions/414156 ...
最新文章
- android binder机制之——(创建binder服务)
- 信息系统项目管理师-项目人力资源管理核心知识点思维脑图
- 数据结构录 之 单调队列单调栈。
- [2012山东ACM省赛] The Best Seat in ACM Contest (模拟)
- 从数据的角度解析计算机的发展,2017计算机知识考前冲刺试题及答案
- error: failed to push some refs to 'https://gitee.com/xxx/xxx'
- 吃饭、睡觉、打星星之“打星星”!
- html页面返回原理,浏览器输入URL到界面显示(HTML渲染)发生了什么?
- Qt 设置窗体大小和背景颜色
- unity3d点击屏幕判断是否击中场景中物体
- 【编辑器】VSCode+TEXLIVE环境配置,以SJTUthesis为测试用例
- 计算机电源高频干扰,在高频开关电源设计中怎样抑制电磁干扰?
- 微信小程序客服消息配置 token 验证失败 微信无请求记录 问题现象的解决办法
- _ZN10tensorflow8internal21CheckOpMessageBuilder9NewStringB5cxx11Ev
- doctype 怪异模式和标准模式
- pta 7-2 jmu-python-组合数 (20 分) python函数练习
- IEEEXTREME15.0 游记
- 分布式系统和网络系统
- 想在互联网上年入百万,必须具备这两种能力!
- 携程并了去哪儿,互联网业7:2:1法则几成定律
热门文章
- python 列表写入excel_Python读写excel表格的方法一
- 第十四篇,STM32的CAN总线通信
- docker防止fork炸弹
- springmvc java.lang.IllegalStateException: getOutputStream() has already been called for this respon
- 【Unity学习笔记】——基础篇:关于光照GI
- 90个常用词根,30个前缀30个后缀
- uniapp 微信小程序授权获取手机并绑定登录
- 马尔科夫细致平稳条件
- MySQL DBA的KPI考核指标有哪些
- Linux搭建Java部署环境