当前位置: 首页 > news >正文

在pycharm中配置GPU训练环境(Anaconda)(yolov5)

目录

1. 具体的配置过程:

2. 在指定位置(路径)创建虚拟环境:

3. conda常用命令:

4: 在跑模型时候遇到的一些问题:

        4.1: conda添加python解释器找不到对应的python.exe文件

        4.2: 报错“OSError: [WinError 1455] 页面文件太小,无法完成操作。”

        4.3: 报错“CUDA out of memory. Tried to allocate 14.00 MiB

                  5: CUDA11.1版本出现NAN的问题原因及解决措施: 

                  6: 虚拟环境中的cuda和系统中cuda的区别:

                  7: 对于动漫角色,训练效果不是很好 :


1. 具体的配置过程:

手把手教你Anaconda安装虚拟环境配置yolov5

2. 在指定位置(路径)创建虚拟环境:

1:使用命令查看当前拥有的虚拟环境

conda info --envs

在这里插入图片描述
2:在指定目录下创建新的虚拟环境,输入命令:

conda create --prefix=C:/ProgramData/Anaconda3/envs/pytorch python=3.8

        其中C:/ProgramData/Anaconda3/envs 是创建的目录所在位置;/pytorch是所创建的环境的名称 python=3.8是创建的python的版本。
在这里插入图片描述

        可以看到,验证确实创建在我们想要的位置
在这里插入图片描述
        OK啦,创建成功:
在这里插入图片描述
在这里插入图片描述

3. conda常用命令:

 常用命令大全

  • 删除虚拟环境的代码如下(yolo5表示env名字) 
conda env remove -n yolo5
  • 激活虚拟环境
conda activate F:\Anaconda\envs\yolo5

4: 在跑模型时候遇到的一些问题:

4.1: conda添加python解释器找不到对应的python.exe文件

        网上有很多解决方法,我参考了这个:(也是用GPU训练的,如果解释器是anaconda虚拟环境中的python,那效果应该是一样的)

  • 直接在Virtualenv Enviroment中找conda的虚拟环境里的python.exe就可以
  • 直接在System Environment中找conda的虚拟环境就可以

4.2: 报错“OSError: [WinError 1455] 页面文件太小,无法完成操作。”

        这个好像和给cuda虚拟环境所在盘分配的虚拟内存有关:

        具体可以参考下边这个博客:

页面文件太小,无法完成操作。

4.3: 报错“CUDA out of memory. Tried to allocate 14.00 MiB

        这个应该是训练的模型所设置的batch-size太大了,GPU的显存满足不了

        把batch-size调小一些,如设置常用的256 128 64 32 16等,我是把yolov5中的16改为了8,然后问题就迎刃而解了。

        最后附上使用GPU训练yolov5模型成功的截图:

(之前用CPU跑同样规模的数据集跑了2个小时,用了GPU只需要16分钟,不得不说真香)

        显卡配置:(有钱一定换块好的)

5: CUDA11.1版本出现NAN的问题原因及解决措施: 

我在完成上述步骤后,出现了一些错误,具体表现为如下形式:

该问题出现的原因在于CUDA版本较高(11.1),最好采用10.2的CUDA版本 ,只需要在虚拟环境中安装10.2的cuda即可,不需要在系统中重新安装。

解决方法可以参考下述博客:

YOLOv5s GTX 1660 Ti训练时出现,box,obj,cla全是nan的问题P、R、mAP都是0,Pytorch和cuda、cudnn版本不对

GTX 16XX系显卡 yolov5训练结果出现NAN的问题

yolov5 训练自己的数据集后,检测不到目标的解决办法

此外,也可能是如下问题导致的:

服务器上训练好的yolov5数据集在自己电脑上什么都检测不出来(已解决)

6: 虚拟环境中的cuda和系统中cuda的区别:

https://blog.csdn.net/qq_42744739/article/details/118640226 

7: 对于动漫角色,训练效果不是很好 :

原本想训练一个自动识别视频中动漫角色(九柱)的模型,但是拿 恋柱——甘露寺蜜璃和水柱——富冈义勇做了小实验(每个选取了各40张图片,其中3张作为验证集),在batch_size=8的情况下epoch=200,最后只能实现识别这两个人物不会出太大问题,但是你喂给它一张猫或狗或者其他柱可能会识别错误(可能是因为数据集太小的缘故,同时动漫人物本身识别也较为困难)

大家如果有开源的鬼灭之刃数据集,可以考虑分享给bz一下,嘿嘿;有问题欢迎在评论区留言!

相关文章:

在pycharm中配置GPU训练环境(Anaconda)(yolov5)

目录 1. 具体的配置过程: 2. 在指定位置(路径)创建虚拟环境: 3. conda常用命令: 4: 在跑模型时候遇到的一些问题: 4.1: conda添加python解释器找不到对应的python.exe文件 4.2: 报错“OSError: [WinErr…...

【LeetCode刷题-链表】--146.LRU缓存

146.LRU缓存 方法一:哈希表双向链表 使用一个哈希表和一个双向链表维护所有在缓存中的键值对 双向链表按照被使用的顺序存储了这些键值对,靠近头部的键值对是最近使用的,而靠近尾部的键值对是最久使用的哈希表即为普通的哈希映射&#xff0…...

mysql 问题解答

01 Mysql有哪些数据类型 MySQL支持多种数据类型,这些类型可以分为几个大的类别:数值类型、日期和时间类型、字符串(字符和字节)类型、空间类型、JSON类型。下面是每种类型的简要说明和用途,以及示例。 数值类型 整型: TINYINT:非常小的整数,如性别标识(0代表女性,1代…...

组件与Props:React中构建可复用UI的基石

目录 组件:构建现代UI的基本单位 Props:组件之间的数据传递 Props的灵活性:构建可配置的组件 组件间的通信:通过回调函数传递数据 总结: 组件:构建现代UI的基本单位 组件是前端开发中的关键概念之一。…...

接口框架第二篇—unittest/pytest 有什么区别

1.用例编写方法 unittest 1)测试文件必须导入unittest包 2)测试类必须继承unittest.TestCase 3)测试类必须有unittest.main()方法 4)测试方法必须要以test_打头 pytest 1)测试文件名要以test_打头,或…...

Window 7 / 10 / 11 .bat .cmd 中文路径不识别解决方案

一般都是编码问题 我们在批处理的第一行加入: chcp 65001 进行转为UTF-8 编码就可以实现中文路径识别...

Linux命令(113)之rev

linux命令之rev 1.rev介绍 linux命令rev是将文件中的每行内容已字符为单位反向输出,即第一个字符最后输出,最后一个字符最先输出 2.rev用法 rev [参数] filename rev参数 参数说明-V显示版本信息-h显示帮助信息 3.实例 3.1.显示rev的版本信息 命令…...

QT+SQLite数据库配置和使用

一、简介 1.1 SQLite(sql)是一款开源轻量级的数据库软件,不需要server,可以集成在其他软件中,非常适合嵌入式系统。Qt5以上版本可以直接使用SQLite(Qt自带驱动)。 二、下载和配置 2.1 SQLite下载…...

若依分离版——配置多数据源(mysql和oracle),实现一个方法操作多个数据源

目录 一、若依平台配置 二、编写oracle数据库访问的各类文件 三. 一个方法操作多个数据源 一、若依平台配置 1、在ruoyi-admin的pom.xml添加依赖 <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</artifactId> <version…...

Seata入门系列【19】分布式事务之CAP、BASE理论

1 CAP理论 CAP是以下三个词语的缩写&#xff1a; Consistency&#xff1a;一致性Availability&#xff1a;可用性Partition tolerance&#xff1a;分区容忍性 CAP理论的基础概念就是在分布式系统中&#xff0c;无法同时满足以上三点。 下面我们以一个简单的分布式系统&…...

界面控件DevExpress WPF Gauge组件 - 轻松实现个性化商业仪表盘

DevExpress WPF Gauge&#xff08;仪表&#xff09;控件包含了多种圆形仪表类型、水平和垂直线性仪表、分段和矩阵数字仪表以及状态指示器&#xff0c;同时还具有最终用户交互性的集成支持。 P.S&#xff1a;DevExpress WPF拥有120个控件和库&#xff0c;将帮助您交付满足甚至…...

算法题:870. 优势洗牌

该算法是临时想出来的&#xff0c;Java代码的实现在时间上不占优&#xff0c;之后有时间要优化一下&#xff0c;目前就是给大家提供一下思路。 解题思路&#xff1a;田忌赛马的思想 贪心法。 Step1. 对两个数组进行排序。 Step2. 同时遍历排序后的nums2和nums1&#xff0c;将…...

[架构之路-252/创业之路-83]:目标系统 - 纵向分层 - 企业信息化的呈现形态:常见企业信息化软件系统 - 企业应用信息系统集成

目录 第一章 什么是企业应用信息系统集成What 1.1 简介 1.2 架构 二、为什么需要企业应用信息系统集成Why 三、如何实现企业应用信息系统集成 3.1 步骤 3.2 企业应用集成的层次 3.3 业务流程重组 第一章 什么是企业应用信息系统集成What 1.1 简介 企业应用信息系统集…...

MFC发送http https以及json解析

域名解析成IP char szWeb[128] "www.baidu.com";struct hostent *pHost NULL;pHost gethostbyname(szWeb);//完成主机名到域名的解析char *IP inet_ntoa(*((struct in_addr *)pHost->h_addr));CString ipStr IP;请求三部曲&#xff1a; 1、CInternetSession…...

UE5加载websocket模块为空

今天测试UE 发现工程启动不了&#xff0c;后来看到原来是websocket模块无法加载。 解决的它的方法很简单&#xff0c;这种问题一般会出现在源码版本的引擎或者是停电了&#xff0c;导致UElaunch版本损坏&#xff0c;解决方法是来到源码版本的引擎 这个目录下&#xff1a; D:\…...

学习 Python 数据可视化,如何快速入门?

Python 是一种非常流行的编程语言&#xff0c;具有简单易学、高效、丰富的库和工具等特点。其中&#xff0c;数据可视化是 Python 的一个重要应用领域&#xff0c;可以帮助人们更好地理解和分析数据。本文将介绍如何快速入门 Python 数据可视化&#xff0c;以及常用的可视化工具…...

XUbuntu22.04之simplenote支持的Markdown语法总结(一百九十一)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…...

JAVA深化篇_26——Apache commons-io工具包的使用

Apache commons-io工具包的使用 Apache基金会介绍 Apache软件基金会&#xff08;也就是Apache Software Foundation&#xff0c;简称为ASF&#xff09;&#xff0c;是专门为支持开源软件项目而办的一个非盈利性组织。在它所支持的Apache项目与子项目中&#xff0c;所发行的软…...

centos 7 kafka2.6单机安装及动态认证SASL SCRAM配置

目录 1.kfaka安装篇 1.1 安装jdk 1.2安装kafka 2.安全篇 2.1 kafka安全涉及3部份&#xff1a; 2.2 Kafka权限控制认证方式 2.3 SASL/SCRAM-SHA-256 配置实例 2.3.1 创建用户 2.3.2 创建 JAAS 文件及配置 3.测试 3.1 创建测试用户 3.2 配置JAAS 文件 3.2.1 生产者配…...

TrafficWatch 数据包嗅探器工具

TrafficWatch 是一种数据包嗅探器工具&#xff0c;允许您监视和分析 PCAP 文件中的网络流量。它提供了对各种网络协议的深入了解&#xff0c;并可以帮助进行网络故障排除、安全分析等。 针对 ARP、ICMP、TCP、UDP、DNS、DHCP、HTTP、SNMP、LLMNR 和 NetBIOS 的特定于协议的数据…...

Qt Widget类解析与代码注释

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码&#xff0c;写上注释 当然可以&#xff01;这段代码是 Qt …...

线程与协程

1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指&#xff1a;像函数调用/返回一样轻量地完成任务切换。 举例说明&#xff1a; 当你在程序中写一个函数调用&#xff1a; funcA() 然后 funcA 执行完后返回&…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库&#xff0c;例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体&#xff0c;比如 SnowballFight、Huggy the Do…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

Go 并发编程基础:通道(Channel)的使用

在 Go 中&#xff0c;Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式&#xff0c;用于在多个 Goroutine 之间传递数据&#xff0c;从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)

前言&#xff1a; 在Java编程中&#xff0c;类的生命周期是指类从被加载到内存中开始&#xff0c;到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期&#xff0c;让读者对此有深刻印象。 目录 ​…...

【SpringBoot自动化部署】

SpringBoot自动化部署方法 使用Jenkins进行持续集成与部署 Jenkins是最常用的自动化部署工具之一&#xff0c;能够实现代码拉取、构建、测试和部署的全流程自动化。 配置Jenkins任务时&#xff0c;需要添加Git仓库地址和凭证&#xff0c;设置构建触发器&#xff08;如GitHub…...

软件工程 期末复习

瀑布模型&#xff1a;计划 螺旋模型&#xff1a;风险低 原型模型: 用户反馈 喷泉模型:代码复用 高内聚 低耦合&#xff1a;模块内部功能紧密 模块之间依赖程度小 高内聚&#xff1a;指的是一个模块内部的功能应该紧密相关。换句话说&#xff0c;一个模块应当只实现单一的功能…...

​​企业大模型服务合规指南:深度解析备案与登记制度​​

伴随AI技术的爆炸式发展&#xff0c;尤其是大模型&#xff08;LLM&#xff09;在各行各业的深度应用和整合&#xff0c;企业利用AI技术提升效率、创新服务的步伐不断加快。无论是像DeepSeek这样的前沿技术提供者&#xff0c;还是积极拥抱AI转型的传统企业&#xff0c;在面向公众…...

倒装芯片凸点成型工艺

UBM&#xff08;Under Bump Metallization&#xff09;与Bump&#xff08;焊球&#xff09;形成工艺流程。我们可以将整张流程图分为三大阶段来理解&#xff1a; &#x1f527; 一、UBM&#xff08;Under Bump Metallization&#xff09;工艺流程&#xff08;黄色区域&#xff…...