【YOLOv5】使用yolov5训练模型时报错合集

news2024/10/7 2:22:20

文章目录

    • 前言
    • 问题1 -- VsCode终端无法进入Anaconda创建的虚拟环境
      • 【问题描述】
      • 【问题分析】
      • 【解决方式】
        • 方法一
        • 方法二
    • 问题2 -- 怎么在VsCode中为项目配置Anaconda创建的虚拟环境
      • 【问题描述】
      • 【解决方式】
    • 问题3 -- yolov5训练模型时报错RuntimeError: result type Float can't be cast to the desired output type __int64
      • 【问题描述】
      • 【问题分析】
      • 【解决方式】
    • 问题4 -- yolov5训练模型时出现警告AttributeError: 'FreeTypeFont' object has no attribute 'getsize'
      • 【问题描述】
      • 【问题分析】
      • 【解决方式】
        • 方法一
        • 方法二


前言

这篇文章用来记录在使用yolov5训练模型时报错处理,持续更新······
2024/4/18
【问题一】VsCode终端无法进入Anaconda创建的虚拟环境
【问题二】怎么在VsCode中为项目配置Anaconda创建的虚拟环境
【问题三】yolov5训练模型时报错RuntimeError: result type Float can’t be cast to the desired output type __int64
【问题四】 yolov5训练模型时出现警告AttributeError: ‘FreeTypeFont’ object has no attribute ‘getsize’


问题1 – VsCode终端无法进入Anaconda创建的虚拟环境

【问题描述】

在这里插入图片描述

【问题分析】

VsCode新建终端默认是powershell,需把VsCode终端默认为cmd。

【解决方式】

方法一

在这里插入图片描述

方法二
  • 1、左下角选择设置
    在这里插入图片描述
    2、在搜索框中输入powershell选择Command Prompt
    在这里插入图片描述
  • 3、重启VsCode

问题2 – 怎么在VsCode中为项目配置Anaconda创建的虚拟环境

【问题描述】

假设我们在Anaconda Prompt下创建了一个虚拟环境,我们想要在VsCode中导入创建好的虚拟环境。

【解决方式】

  • 1、在代码空白处同时按下 Ctrl + Shift + P
  • 2、在弹出的搜索框输入“选择解释器”
    在这里插入图片描述
  • 3、点击进入Python: 选择解释器
  • 4、选择你想要的环境
    在这里插入图片描述
  • 5、右下角查看项目的环境
    在这里插入图片描述

问题3 – yolov5训练模型时报错RuntimeError: result type Float can’t be cast to the desired output type __int64

【问题描述】

报错信息如下:
在这里插入图片描述

【问题分析】

PyTorch 的早期版本中,当进行某些运算时,PyTorch 可能会自动对张量的数据类型进行调整以适应操作的需求。然而,在新版本的PyTorch 中,这种自动转换可能不再发生,因此需要显式地进行数据类型的转换。
通过添加 .long() 方法到 torch.ones创建的张量上,可以明确地将该张量的数据类型从默认的浮点数(float)转换为长整型(long)。

【解决方式】

  • 1、找到 loss.py 文件
  • 2、修改loss.py
    将 loss.py 文件中的第173行代码
    gain = torch.ones(7, device=targets.device) # normalized to gridspace gain
    改为
    gain = torch.ones(7, device=targets.device).long()
    在这里插入图片描述
  • 3、按Ctrl + S键对代码进行保存

问题4 – yolov5训练模型时出现警告AttributeError: ‘FreeTypeFont’ object has no attribute ‘getsize’

【问题描述】

报错信息如下:
在这里插入图片描述

【问题分析】

问题出在库Pillow中的getsize函数,getsize已弃用,已在Pillow 10(2023-07-01)中删除。

【解决方式】

方法一

1、找到 plots.py 文件
2、在 plots.py 中添加以下代码

import PIL
def check_version(target_version):
    """
    Check if the current PIL version is greater than or equal to the target version.

    Args:
        target_version (str): The target version string to compare against (e.g., '9.2.0').

    Returns:
        bool: True if the current PIL version is greater than or equal to the target version, False otherwise.
    """
    current_version = PIL.__version__
    current_version_parts = [int(part) for part in current_version.split('.')]
    target_version_parts = [int(part) for part in target_version.split('.')]

    # Compare version parts
    for cur, tgt in zip(current_version_parts, target_version_parts):
        if cur > tgt:
            return True
        elif cur < tgt:
            return False

    # If all parts are equal, the versions are equal or current version is shorter
    return True

在这里插入图片描述

3、修改Annotator类的__init__方法
在__init__方法中添加以下代码段:

if check_version('9.2.0'):
    self.font.getsize = lambda x: self.font.getbbox(x)[2:4]  # text width, height

在这里插入图片描述

4、按Ctrl + S键对代码进行保存

方法二

1、打开Anaconda Prompt

2、进入你为yolov5项目配置的虚拟环境

conda activate yolo_v5

将“yolo_v5”改为你自己创建的虚拟环境名

3、输入以下命令查看安装的pillow版本

pip show pillow

4、使用以下命令卸载pillow

pip uninstall pillow

5、安装版本为9.5.0的pillow(有挂代理/梯子记得关掉)

pip install pillow==9.5.0

如果安装失败或下载速度慢,可改用国内源进行安装,如换清华源:

pip install pillow==9.5.0 -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple --trusted-host=https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple

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

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

相关文章

c语言基础总结

1. c语言概述 c语言是计算机编程语言的一种&#xff0c;编程语言用于人和机器交流。 1.1 c语言特点 简洁 ​ c语言的语法简单&#xff0c;语句清晰明了&#xff0c;使得程序易于阅读和理解 高效 ​ c语言的执行效率高&#xff0c;可以用于开发需要高性能的应用程序 可移…

C语言中的控制语句(分支语句 if、switch、三目运算符)

程序执行的三大流程 顺序 : 从上向下&#xff0c; 顺序执行代码分支 : 根据条件判断&#xff0c; 决定执行代码的分支循环 : 让特定代码重复的执行 分支语句 条件语句用来根据不同的条件来执行不同的语句&#xff0c;C语言中常用的条件语句包括if语句和switch语句。 if 语句…

比特币叙事大转向

作者&#xff1a;David Lawant 编译&#xff1a;秦晋 要理比特币解减半动态&#xff0c;最关键的图表是下面这张&#xff0c;而不是价格图表。它显示了自 2012 年以来&#xff0c;矿业总收入与比特币现货交易量的比例&#xff0c;并标注了三个减半日期。 虽然矿工仍然是比特币生…

语音识别ASR背后的原理

现在人机语音交互已经成为我们日常生活的一部分&#xff0c;语音交互更自然&#xff0c;大大的提高了效率。 一、什么是语音识别 文字绝对算是人类最伟大的发明之一&#xff0c;正是因为有了文字&#xff0c;人类的文明成果才得以延续。但是文字只是记录方式&#xff0c;人类…

【C++】C++11右值引用

&#x1f440;樊梓慕&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》《算法》 &#x1f31d;每一个不曾起舞的日子&#xff0c;都是对生命的辜负 目录 前言 1.什么是左值&&…

npm最新淘宝镜像站已经更新registry(2024-04-19)

1、npm替换地址 旧的 https://registry.npm.taobao.org 已替换为 https://registry.npmmirror.com 淘宝镜像的淘宝官方提供的方法&#xff08;最新的源配置&#xff09; npm config set registry https://registry.npmmirror.com 镜像站网址&#xff1a; npmm…

【Node.js】 fs模块全解析

&#x1f525;【Node.js】 fs模块全解析 &#x1f4e2; 引言 在Node.js开发中&#xff0c;fs模块犹如一把万能钥匙&#xff0c;解锁着整个文件系统的操作。从读取文件、写入文件、检查状态到目录管理&#xff0c;无所不能。接下来&#xff0c;我们将逐一揭开fs模块中最常用的那…

RAID技术

RIAD 什么是RAID 磁盘阵列:利用虚拟化存储技术把多个硬盘组合起来&#xff0c;成为一个或多个硬盘阵列组&#xff0c;目的为提升性能或数据冗余&#xff0c;或是两者同时提升。 简单来说RAID是把多个硬盘组合成为一个逻辑硬盘&#xff0c;因此&#xff0c;操作系统只会把它当作…

若依框架后台管理系统_修改后台管理密码

若依框架后台管理系统_修改后台管理密码 1. 找见加密函数&#xff1a; /*** 生成BCryptPasswordEncoder密码** param password 密码* return 加密字符串*/public static String encryptPassword(String password){BCryptPasswordEncoder passwordEncoder new BCryptPasswordE…

Kubernetes Pod的配置管理 ConfigMap和Secret

目录 前言 一、为什么需要配置管理 二、使用ConfigMap管理Pod的配置信息 2.1 创建ConfigMap&#xff08;4种方式&#xff09; 2.1.1 指定ConfigMap的参数创建 2.1.2 指定配置文件创建ConfigMap 2.1.3 通过一个文件内的多个键值对创建ConfigMap 2.1.4 yaml文件创建Config…

gpt能生成ppt吗

gpt能生成ppt吗 GPT是一个高度通用的工具&#xff0c;适用于多种场景和领域&#xff0c;制作ppt只是它强大功能的冰山一角&#xff0c;具体包括&#xff1a; 信息查询与解释&#xff1a; 提供科学、技术、历史、文化等领域的详细解释和背景信息。 解答疑问&#xff0c;帮助…

达梦数据库一体机树立金融解决方案标杆

达梦数据库一体机自问世以来&#xff0c;获得众多行业用户的高度关注&#xff0c;并率先在金融行业吹响冲锋号角&#xff0c;实现多个重大项目的落地应用。近日&#xff0c;珠海华润银行股份有限公司基于达梦数据库一体机 I 系列的《数据库一体机银行多业务系统集中部署解决方案…

【Java 多线程】Synchronized

Synchronized Synchronized 是Java的一个关键字&#xff0c;它能够将代码块或方法锁起来&#xff0c;是一种互斥锁&#xff0c;一次只能允许一个线程进入被锁住的代码块 如果 Synchronized 修饰的是实例方法&#xff0c;则对应的锁是对象实例如果 Synchronized 修饰的是静态方…

SSL证书在HTTP与HTTPS中的角色差异是什么?

在互联网的广泛应用背景下&#xff0c;随着网络攻击和数据泄露事件频发&#xff0c;保障用户的数据安全已成为至关重要的议题。传统的HTTP协议在传输数据时不进行加密处理&#xff0c;导致数据在传输过程中暴露于潜在的窃听和篡改风险中&#xff0c;安全性薄弱。而通过引入SSL/…

Springboot+Vue项目-基于Java+MySQL的免税商品优选购物商城系统(附源码+演示视频+LW)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;Java毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计 &…

Linux的图形资源及指令

一、火车 1.切换到超级用户 su 2.下载资源 yum install -y sl 3.输入指令 sl&#xff0c;得到火车图形 如果没有得到该图形&#xff0c;就将2处改为yum install -y epel-release。 二、Linux的logo 1.在超级用户模式下下载资源 yum install -y linux_logo 2.输…

英语日常用语柯桥职场英语学习去哪里?专业语言培训推荐泓畅学校

“摸鱼”的英语表达 职场&#xff0c;总有些看似努力工作的同事&#xff0c;很可能是深藏不漏的“摸鱼圣手”。 但“摸鱼”的英文表达绝对不是“touch fish”这么简单&#xff01;上班摸鱼&#xff0c;就是不好好干活、浪费时间&#xff0c;所以“loaf”这个单词有必要了解一下…

腾讯EdgeOne产品测评体验—更快更强更安全,安全我选EdgeOne

腾讯EdgeOne产品测评体验—更快更强更安全&#xff0c;安全我选EdgeOne 王婆的瓜可甜&#xff1f; 自 23 年 8 月份 EdgeOne 开放订阅套餐后&#xff0c;腾讯云用户使用 EdgeOne 来为自己网站进行加速和防护的站点数量&#xff0c;呈现爆发式增长趋势。 金融服务业受到的 Web…

AI智能边缘分析一体机,32T算力,可同时处理32路1080p高清视频

产品概述 XM-AIBOX-32智能边缘分析一体机是一款高性能、低功耗边缘计算产品。搭载BM1684X主芯片&#xff0c;INT8算力高达32TOPS&#xff0c;FP16/BF16算力高达16TFLOPS&#xff0c;FP32算力高达2TFLOPS&#xff0c;可同时处理32路高清视频&#xff0c;支持32路1080P高清视频硬…

LeetCode in Python 1338. Reduce Array Size to The Half (数组大小减半)

数组大小减半思路简单&#xff0c;主要是熟悉python中collections.Counter的用法&#xff0c;采用贪心策略即可。 示例&#xff1a; 图1 数组大小减半输入输出示例 代码&#xff1a; class Solution:def minSetSize(self, arr):count Counter(arr)n, ans 0, 0for i, valu…