【脏数据 bug 解决】ValueError: mean must have 1 elements if it is an iterable, got 3

news2024/11/28 12:50:06

问题描述:

  1. 在训练模型的过程中,出现 clip_image_processor 无法处理数据的问题,说明数据集中很可能出现了脏数据。
  2. 本文使用的数据为 LAION-Aesthetics-V2-6.5plus,从 https://dagshub.com/DagsHub-Datasets/LAION-Aesthetics-V2-6.5plus 上下载的。
Traceback (most recent call last):
...
  File "/xxx/check_train_data.py", line 69, in __getitem__
    raise e  # Re-raise the exception to halt the training process
    ^^^^^^^
  File "/xxx/check_train_data.py", line 64, in __getitem__
    clip_image = self.clip_image_processor(images=raw_image, return_tensors="pt").pixel_values
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/xxx/lib/python3.12/site-packages/transformers/image_processing_utils.py", line 41, in __call__
    return self.preprocess(images, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/xxx/lib/python3.12/site-packages/transformers/models/clip/image_processing_clip.py", line 341, in preprocess
    self.normalize(image=image, mean=image_mean, std=image_std, input_data_format=input_data_format)
  File "/xxx/lib/python3.12/site-packages/transformers/image_processing_utils.py", line 111, in normalize
    return normalize(
           ^^^^^^^^^^
  File "/xxx/lib/python3.12/site-packages/transformers/image_transforms.py", line 392, in normalize
    raise ValueError(f"mean must have {num_channels} elements if it is an iterable, got {len(mean)}")
ValueError: mean must have 1 elements if it is an iterable, got 3

解决方案:

  1. 将原代码的 clip_image = self.clip_image_processor 修改为 try、except 来找到导致报错的图片。
  2. 将加载数据的代码部分拎出,并遍历一遍。
 # read image
 raw_image = Image.open(os.path.join(self.image_root_path, image_file))
 image = self.transform(raw_image.convert("RGB"))
 # clip_image = self.clip_image_processor(images=raw_image, return_tensors="pt").pixel_values
 try:
     clip_image = self.clip_image_processor(images=raw_image, return_tensors="pt").pixel_values
     print(f'image_file_{idx} processed with clip_image_processor: {image_file}')
 except Exception as e:
     print(f'Error processing image_file_{idx}: {image_file}')
     print(e)
     raise e  # Re-raise the exception to halt the training process
  1. 最终卡在 4235 附近的图片,通过肉眼观察,发现 4236 是图片空的😂
  2. 手动删除 4236 图片以及对应的 json 文本后便可正常训练!🏋️
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2060308.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

21、springboot3 vue3开发平台-前端-自定义树形穿梭框,用于角色权限分配

文章目录 1. 使用原因2. 实现3. 使用 1. 使用原因 elemenutplus 有穿梭框,但是不支持树状数据的操作,所以这里自定义树状穿梭框,用于菜单权限分配, 如下: 2. 实现 这里主要是将菜单列表树解构后添加修改组合再恢复…

STM32H7双路CAN踩坑记录

STM32H7双路CAN踩坑记录 目录 STM32H7双路CAN踩坑记录1 问题描述2 原因分析3 解决办法4 CAN配置参考代码 1 问题描述 STM32的CAN1和CAN2无法同时使用。 注:MCU使用的是STM32H743,其他型号不确定是否一样,本文只以STM32H743举例说明。 2 原因…

odoo17 网站内容存在哪了

odoo17 网站内容存在哪了 查数据库内容,却没找到 没理解这些内容到底存在了哪里呢

图文详解ThreadLocal:原理、结构与内存泄漏解析

目录 一.什么是ThreadLocal 二.ThreadLocal的内部结构 三.ThreadLocal带来的内存泄露问题 ▐ key强引用 ▐ key弱引用 总结 一.什么是ThreadLocal 在Java中,ThreadLocal 类提供了一种方式,使得每个线程可以独立地持有自己的变量副本,而…

「黑神话:悟空」狂销 15 亿!高清游戏录制神器助你称霸

短短一天时间 《黑神话:悟空》在Steam上已售出超过300万份 加上wegame、epic和ps平台 目前总销量超过450万份,总销售额超过15亿元。 根据Steam平台实时数据 8月20日晚间20点30分 该平台《黑神话:悟空》同时在线玩家人数突破200万 达到2…

手机怎么把百度网盘里的文件打印出来?

在日常生活中,我们常常需要打印各种文档,比如合同、报告或是学习资料。有时这些文件存储在网盘中,比如百度网盘,这时候如果能够直接从网盘中打印出来,将会极大地提高效率。今天,就让我们来了解一下如何使用…

PL3366C 用0.1+的芯片做过认证5V1A电源

PL3366C是一款原边反激式5W开关电源芯片恒流/恒压电源。PL3366C高度集成了功率开关,无需光耦以及次级控制电路,PL3366C的复合模式的应用使芯片能够实现低静态功耗、低音频噪音、高效率。满载时PL3366C工作在PFM模式,随着负载降低,…

I2C学习:上拉电阻选取

一.I2C简介 I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。I2C总线在使用时,需要接上拉电阻,这是因为I2C接口是开漏输出,如图1所示。 图1 I2C开漏输出 I2C有5种速度模式:标准(100KHz&am…

日志文件的理解

前言 说实在话我一直对于日志不太理解,感觉这词说的这么高大上,不好理解,甚至还有点畏惧这个东西,所以专门去研究了下,最后发现这家伙不就是输出信息嘛,就像C语言中printf输出的信息,C中cout输…

【电子通识】开关上的“|”和“0”到底哪个是开?哪个是关?

有的电器、灯具和插座上带有电源开关,开关上会出现“|”和“O”两个符号。如下所示船型开关上就有“|”和“0”。 也有开关用ON/OFF代表开闭。 如果只看符号判断“|”和“O”到底代表什么含义呢?你又能分清哪个是电路连通,哪个是电路断开…

05.震动控制继电器开关

首先先知道控制器的原理 通过继电器来控制电路,比如智能插座,比如 220V 的灯,比如我们项目不带开关的傻瓜式报警器 当设置继电器为低电平触发时, STC89C52RC 的 IO 输出 低电平,就会导致 COM口和NO口闭合 &#xff0c…

LearnOpenGL——点光源阴影笔记

LearnOpenGL——点光源阴影笔记 点光源阴影一、生成深度立方体贴图1. 创建立方体贴图2. 光空间的变换3. 深度着色器 二、万向阴影贴图三、PCF 点光源阴影 点光阴影(也叫万向阴影贴图(Omnidirectional Shadow Maps,OSM)&#xff0…

【乐吾乐大屏可视化组态编辑器】动画按顺序播放

动画按顺序播放 在线使用:https://v.le5le.com/ 如案例所示,通过连线去串联一组动画图元,动画按照顺序向后执行。 ① 首先给每个图元都配置动画,注意这里的动画播放次数一定要配置有限个(这里配置都是1次&#xff0…

AI在医学领域:FEDMEKI平台实现在隐私约束下将医学知识整合到基础模型

基础模型已在众多领域掀起了一场革命性的变革,它们在处理多样化模态和复杂任务方面展现出了卓越的能力。以GPT-3和LLaMA为例,这些模型在众多应用场景中均表现出色。其成功的核心在于接触并学习海量的训练数据,从而深入洞察不同领域。借助这些…

【python与java的区别-04(文件流)】

一、文件和目录的操作 1、IO流(Stream) 通过“流”的形式允许计算机程序使用相同的方式来访问不同的流入/流出源。Stream是从起源(source)到接收(sink)的有序数据。我们把输入/输出源对比成“水桶”,那么流就是“管道…

企业给排水乙级资质续期:人才储备与补充计划

企业给排水乙级资质续期过程中,人才储备与补充计划是至关重要的环节。以下是一个详细的人才储备与补充计划,旨在帮助企业顺利应对资质续期挑战: 一、人才储备计划 1. 提前规划与预测 政策分析:密切关注住建部门或相关权威机构发…

VirtualBox和VMware的虚拟机ip配置为同一网段不使用wlan的网卡(vulnhub打靶前期准备)

打靶前期准备工作,virtualbox和VMware之间的网络互通(即同一个网段下非wlan网卡的设置) 首先在打靶的时候因为vulnhub的靶机都是使用的virtualbox的虚拟机,但是我的kali已经用了很久了一直使用的是VMware,突然转换使用…

面试必刷——二叉树习题/面试题详解

(1)检查两棵树是否相同 题目链接: . - 力扣(LeetCode). - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems…

品质更进阶 长安马自达MAZDA EZ-6通关中国“热极”

继在中国规格最高的重庆垫江测试场完成驾控试炼后,8月20日-22日,长安马自达MAZDA EZ-6“众测先享官—品质更进阶”在中国“热极”吐鲁番再次拉开帷幕。针对电动车用户最关心的酷暑天气用车痛点场景,由长安马自达工程师团队携手用户代表、权威…

云微客短视频矩阵获客有多容易?低成本获客备受好评

数字化时代,短视频矩阵已经成为企业获客的重要渠道之一,云微客短视频矩阵系统为企业解决在短视频营销中的账号搭建、内容生产、账号运营、低成本引流等难题。 短视频矩阵是一种基于抖音、快手、小红书、视频号等短视频平台,通过批量剪辑、批量…