使用YOLOv10训练自定义数据集之一(环境部署)

news2024/9/28 15:24:54

0x00 前言

由清华大学的研究团队基于 Ultralytics Python 包研发的 YOLOv10,通过优化模型结构并去除非极大值抑制(NMS)环节,提出了一种创新的实时目标检测技术。这些改进不仅实现了行业领先的检测性能,还降低了对计算资源的需求。大量实验结果证明,YOLOv10 在不同规模的模型上都能提供卓越的准确率和延迟之间的平衡。

0x01 运行环境

名称version
编程语言python3.8
操作系统Windows10
目标识别yolov10
GPU算力cuda10.1
基础组件库conda24.5.0

0x02 环境准备

1. 下载安装CUDA 套件

CUDA(ComputeUnified Device Architecture),是显卡厂商NVIDIA推出的运算平台。CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。

CUDA下载官网:https://developer.nvidia.com/cuda-toolkit-archive

到NVIDIA官网选择适合自己的CUDA套件,找到LZ需要的CUDA Toolkit 10.1,下载并安装。
在这里插入图片描述

2. 下载安装cuDNN

cuDNN 是用于深度神经网络的GPU加速库(Windows下是多个dll和.h文件等组成)。它强调性能、易用性和低内存开销。NVIDIA cuDNN可以集成到更高级别的机器学习框架中,如谷歌的Tensorflow、加州大学伯克利分校的流行caffe软件。简单的插入式设计可以让开发人员专注于设计和实现神经网络模型,而不是简单调整性能,同时还可以在GPU上实现高性能现代并行计算。无论是大型计算还是个人研究都是福音的存在。

下载官网:https://developer.nvidia.com/rdp/cudnn-archive

根据CUDA 10.1版本找到对应cuDNN版本,这里下载的是cuDNN v8.0.5
在这里插入图片描述

安装cuDNN

可以参考官方安装文档【传送门】:
https://docs.nvidia.com/deeplearning/cudnn/latest/installation/windows.html

  1. 解压cuDNN的压缩包,得到bin,include,lib三个目录
  2. 将这三个目录分别复制到cuda的安装目录中,对应关系如下:
    在这里插入图片描述
    注意:官网的这个关系并不完全对,lib\x64应该也要复制到lib\x64下面
  3. 配置Windows的环境变量PATH,增加这些路径
    在这里插入图片描述

1. 创建python虚拟环境

之前因为已经准备了一套gpu算力的环境,所以复制这个python环境即可

conda create -n yolov10 --clone A

2. 确认pytorch版本,并安装

这里是有点坑,因为之前A的环境已经手动改成了适配cuda10.1的pytorch1.8.1,不过运行完居然提示我占不到gpu device。与实检查pytorch,发现是pytorch2.4.0。于是要卸载重装。

进入yolov10环境,卸载pytorch2.4.0。

(base) D:\yolov10> conda  activate yolov10
(yolov10) D:\yolov10> pip uninstall torch
(yolov10) D:\yolov10> pip uninstall torchaudio
(yolov10) D:\yolov10> pip uninstall torchvision

重新安装pytorch1.8.1, 参考官方版本【传送门】
在这里插入图片描述

# CUDA 10.1
pip install torch==1.8.1+cu101 torchvision==0.9.1+cu101 torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html

0x03 检验torch是否可用

使用如下代码即可:

import torch

flag = torch.cuda.is_available()
if flag:
    print("cuda is valid")
else:
    print("cuda is not valid")

ngpu = 1

device = torch.device("cuda:0" if (torch.cuda.is_available() and ngpu >0) else "cpu")
print("GPU设备为:", device)
print("显卡设备名称为:", torch.cuda.get_device_name(0))

在这里插入图片描述

0x04 部署源码

下载YOLOv10源码
地址:https://github.com/THU-MIG/yolov10

0x05 参考文献

https://docs.nvidia.com/
https://blog.csdn.net/2401_85556416/article/details/141431698
https://zhuanlan.zhihu.com/p/651151335
https://pytorch.org/get-started/previous-versions/

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

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

相关文章

网络编程----网络基础ip地址

一丶IP地址 1.基本概念 1. IP地址是Internet中主机的标识 2. Internet中的主机要与别的机器通信必须具有一个IP地址 3. IP地址为32位(IPv4)或者128位(IPv6) NAT:公网转私网、私网转公网 4. IPV4表示形式&…

【简历】25届上海某一本JAVA简历:第一次看学校背景写一页的

注:为保证用户信息安全,姓名和学校等信息已经进行同层次变更,内容部分细节也进行了部分隐藏 简历说明 这是一份25 届上海某一本大学硕士的Java简历。这份简历写得比较偏,让人头疼。 这位同学的学校是重点一本,可以冲…

C++第四十五弹---深入理解包装器:提升代码复用性与安全性的利器

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】 目录 1 包装器 1.1、function包装器 1.2、bind 1 包装器 1.1、function包装器 function包装器 也叫作适配器。C中的function本质是一个类模板&…

uniapp树洞烦恼分享系统 微信小程序设计与实现 80igt

目录 博主介绍技术栈系统设计🌟文末获取源码数据库🌟具体实现截图后端前端java类核心代码部分展示可行性论证个人心得系统测试操作可行性源码获取详细视频演示 博主介绍 👇🏻 博主介绍:👇🏻 专…

使用 WARP 和 Perf 测试对 MinIO 企业对象存储进行基准测试

AI/ML、高级分析和数据库等现代应用程序需要高性能对象存储。MinIO Enterprise Object Store 将可扩展性和高性能相结合,使每个工作负载(无论要求多么苛刻)触手可及。我们发布的基准测试表明,MinIO Enterprise Object Storage 是市…

泰克Tektronix MSO46 一款混合信号示波器

Tektronix MSO46 是一款混合信号示波器 (MSO),专为调试和分析复杂的电子电路而设计。FlexChannel 技术使每个通道输入都可以用作单个模拟通道、八个数字逻辑输入(使用 TLP058 逻辑探头)或同时使用模拟和频谱视图,每个域都有独立的…

前端进阶|一文理解柯里化的逆操作,什么是反柯里化

温故而知新 在说反柯里化之前,先来复习下柯里化的基础。之前文章,我们了解了什么是柯里化,以及柯里化的实现原理,同时我们也明白了什么情况下我们使用柯里化,详细阅读参见之前文章《前端进阶|由浅入深的理…

探索Python世界的趣味之旅:自制贪吃蛇游戏

通过本次贪吃蛇游戏的开发实践,不仅可以掌握Python编程语言的基础知识,还深入了解了游戏开发的基本流程和技术要点。这只是一个开始,Python的世界远不止于此。未来,你可以尝试开发更复杂、更有趣的游戏项目,甚至探索人…

Java详解String 字符串类以及String内存原理、StringBuilder类、StringJoiner类(附有代码+案例)

文章目录 九.String 字符串类型9.0 String概述9.1 字符串常用方法9.2 String内存图9.2.1直接赋值9.2.2new出来 9.3字符串比较9.4 字符串遍历9.4.1 统计字符串大小写及数字9.4.2 拼接字符串9.4.3字符串反转 9.5 StringBuilder类9.5.1StringBuilder 构造方法9.5.2StringBuilder常…

Spring全局异常处理HandlerExceptionResolver使用

1 引言 全局异常处理在项目中经常会用到,主要作用包括统一处理异常、提供友好的错误信息、避免应用程序崩溃、记录异常日志、避免异常信息泄露等等。下文将以实现HandlerExceptionResolver接口的方式,实现全局异常处理功能及常规用法。 2 代码 下面列…

Qt 字符串的编码方式,以及反斜杠加3个数字是什么编码\344\275\240,如何生成

Qt 字符串的编码方式 问题 总所周知,Qt的ui文件在编译时,会自动生成一个ui_xxxxx.h的头文件,打开一看,其实就是将摆放的控件new出来以及布局的代码。 只要用Qt提供的uic.exe工具,自己也可以将ui文件输出为代码文件…

day17JS-Cookle、webStorage和Promise

1. 什么是Cookle 在网页中需要向当前电脑中存储一些数据,通过cookie可以存储。 Cookie :是一种由服务器发送到用户浏览器并保存在用户计算机上的小型文本文件,用于识别用户身份、跟踪用户活动、保存用户设置等。它通常包括名称、值、域名、…

云服务器+docker:还在为项目上线苦恼?一文包你解决(保姆级教程,图文并茂,万字起步!!!)

目录 Blue留言机: 学习视频以及参考资料 : 1、学习之前的必备操作: 第一步:购买服务器 选择一台免费的云服务器(包白嫖的) 配置服务器的一点说明: 查看自己是否购买成功: 第…

解决UOS开发截图时电脑滴滴声

在使用import命令截图时,电脑会伴随滴滴声,影响程序使用体验,使用 sudo rmmod pscpkr 即可解决滴滴声,这个命令每次开机,重新运行程序时都需输入,因此需要在脚本文件中自动执行,但是sudo命令需…

Tomcat8版本以上配置自定义400错误页面

问题:当请求URL包含特殊字符时,Tomcat会自动拦截并返回400状态码页面,暴露了tomcat的版本信息,这是很严重的安全漏洞。 java.lang.IllegalArgumentException: 在请求目标中找到无效字符。有效字符在RFC 7230和RFC 3986中定义 解…

Kafka【六】Linux下安装Kafka(Zookeeper)集群

Kafka从早期的消息传输系统转型为开源分布式事件流处理平台系统,所以很多核心组件,核心操作都是基于分布式多节点的。本文这里采用三台虚拟机模拟真实物理主机搭建Zookeeper集群和kafka集群。 VMware可以使用户在一台计算机上同时运行多个操作系统&…

符合全真彩的简单完美正方形

符合全真彩的简单完美正方形,像素:4096x4096、颜色:16,777,216。 原图可透过 https://linxinglu.com/art/#245.png 访问 ,除了分辨率 4096x4096,也就是 16777216 像素,颜色数量也恰好是 16777216&#xff0…

静态字段和静态方法

1. 静态字段 1. 用static修饰的字段。 2. 实例字段在每个实例中有自己的独立”空间“,静态字段只有共享”空间“,所有实例共享该字段。 3. 使用”类名.静态字段“调用静态字段,静态字段不属于实例,是类class本身的…

四川财谷通抖音小店创新引领新风尚

在数字化浪潮的推动下,电商行业蓬勃发展,抖音小店作为新兴的电商平台,凭借其独特的社交属性和便捷的购物体验,迅速赢得了广大消费者的青睐。在众多抖音小店中,四川财谷通抖音小店以其精准定位、高质量内容、一站式服务…

iLogtail 开源两周年:社区使用调查报告

作者:玄飏 iLogtail 作为阿里云开源的可观测数据采集器,以其高效、灵活和可扩展的特性,在可观测采集、处理与分析领域受到了广泛的关注与应用。在 iLogtail 两周年之际,我们对 iLogtail 开源社区进行了一次使用调研,旨…