如何配置yolov10环境?
本文介绍如何快速搭建起yolov10环境,用于后续项目推理、模型训练。教程适用win、linux系统
yolo10是基于yolo8(ultralytics)的改进,环境配置跟yolo8几乎一模一样。
目录
第1章节:创建虚拟环境
第2章节:GPU环境下YOLOV10环境配置
第3章节:CPU环境下YOLO10环境配置
第4章节:下载yolo10源码
重要说明:YOLO10环境分为CPU环境与GPU环境,选择任意一种即可。鼓励有英伟达显卡的用户优先选择GPU环境,项目检测、模型训练速度会快很多很多
适合选择CPU环境的情况:电脑上没有英伟达显卡(N卡)
适合选择GPU环境的情况:电脑上有英伟达独立显卡(显存大小不限)且已经安装好英伟达显卡驱动。注意一定是英伟达的独立显卡,不是AMD显卡更不是集成显卡!
英伟达显卡驱动如何安装可以查看本人之前写的教程
Tips :电脑上有英伟达显卡,如何知晓显卡驱动是否安装?
答:打开电脑的命令行窗口,键入 nvidia-smi命令,如果有输出则安装成功,如下图所示:
第1章节:创建虚拟环境
说明:anaconda、venv等都可以,虚拟环境的python版本应不低于3.8,我这里指定为3.10。
前置条件:电脑中已经安装配置好anaconda、或者miniconda、或者python venv虚拟环境中的任意一种(如果电脑中没有这些软件环境,可自行百度安装配置,网上教程很多,优先选择anaconda
下面以anaconda新建虚拟环境为例,在anaconda环境下新建一个虚拟环境。如果你的电脑中正确安装了anaconda,在电脑的windows徽标的“所有应用”中,可以看到anaconda目录,里面有 Anaconda Prompt和Anaconda Powershell Prompt(见下图)
然后我们点击Anaconda Powershell Prompt(优先推荐使用这种方式,其次是Anaconda Prompt),之后我们就进入了Anaconda Powershell Prompt命令行。
然后在命令行窗口中输入下面的命令新建一个名为yolo10的环境(我这里取虚拟环境名为yolo10,这里的虚拟环境名称是自己定义的,比如:yolov10,aaa,bbb等数字英文名称都是可以的,我这里python版本为3.10.0)
conda create -n yolo10 python==3.10.0
创建好环境之后,将anaconda由base环境切换到刚刚新建好的yolo10环境
切换到对应的conda环境之后,下面安装配置YOLO10的运行环境,首先介绍GPU环境,然后介绍CPU环境。
第2章节:GPU环境下YOLOV10环境配置
说明:如果你的电脑不具备GPU环境,请直接跳到下一章节。
前置要求:需要你的电脑有英伟达显卡且安装了显卡驱动(nvidia-smi命令有返回)
2.1 去Pytorch官网安装GPU版本的Pytorch
在第1章节中,用anaconda创建好一个名为yolo10的虚拟环境之后,激活进入该环境中,进行下列操作。
不就是安装Pytorch吗?直接conda install pytorch 或者 pip install pytorch不就好了?如果这样做的话,就安装错了,这样安装的是cpu版本的pytorch并且没有为名为yolo10的虚拟环境安装cudatoolkit工具包(运行时环境) 。我们需要执行下面的命令之一,为名为yolo10的虚拟环境正确安装gpu版本的pytorch。在执行下面的命令之前,我们需要仔细确认自己电脑的英伟达显卡驱动支持的最高cuda版本。具体做法是,命令行窗口输入nvidia-smi,返回的 CUDA Version即为支持的CUDA最高版本。详细见下图所示:
可以看到,本人电脑的显卡驱动所支持的最高 CUDA版本是12.4(意思是最高可以安装cuda 12.4或者比cuda 12.4 低的,只低不高的原则)。那么我们需要去pytorch官网找到与cuda 12.4版本对应的安装命令或者比CUDA12.4低的安装命令。
如上面截图所示(2024.06.05),这个页面上可以让我们选择安装方式(conda安装、pip安装....)对应的OS版本、CUDA版本等等,页面会自动生成安装命令。但是上面的页面所显示的支持CUDA 11.8和 CUDA12.1,而我们本地电脑所支持的最高版本是CUDA12.4,根据只低不高的原则。因此可以选择CUDA 11.8或 CUDA12.1,我们直接在页面上选择Pytorch版本(选择Stable),OS类型(这里选择windows),安装方式(这里选择Conda),语言选择Python,CUDA版本我这里选择12.1,然后就可以自动生成安装命令:
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia
然后我们复制上面的命令在yolo10的conda虚拟环境中执行安装:
这里一般需要我们等待相当长一段时间(除非你的网络比较好或者之前安装过),安装速度一般自己电脑的网络而异,网络不好可能会安装中断,此时多次重试上面的命令即可。
如果你的电脑的显卡驱动所支持的最高CUDA版本既不是11.8也不是12.1,假如是11.7,那么需要进入历史版本界面(链接如下图红色方框所示)找CUDA 11.7的pytorch
进入pytorch历史版本页面后(如下面的截图所示)我们直接复制命令执行了就好了
可以看到CUDA11.7对应的conda 安装方式的命令是这样的(CUDA11.7对应着多个版本的torch,我这里选择torch2.0.1):
conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.7 -c pytorch -c nvidia
我们直接复制,在名为yolo10的conda环境下执行即可
当然我们还可以选择pip命令安装,直接从页面复制命令在名为yolo10的conda环境命令行窗口执行(注意,conda安装、pip安装两种方式任选其一即可,不可重复)
第3章节:CPU环境下YOLO10环境配置
说明:在CPU环境下项目视频检测和摄像头检测速度会比较慢
在第1章节,为项目创建好虚拟环境之后(还是以名为yolo10的虚拟环境为例子)激活并进入该虚拟环境,后键入下面的命令(两种安装方式任选其一,切记不可重复):
1.Anaconda安装(默认anaconda源中最新版本的torch):
conda install pytorch torchvision torchaudio cpuonly -c pytorch
2.Pip 安装(我这里以2.0.1版本为例)
pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2
下面不加版本号默认安装的是pip源中最新版本的torch
pip3 install torch torchvision torchaudio
第4章节:下载yolo10源码
去github下载yolo10源码:https://github.com/THU-MIG/yolov10
yolo10项目目录下 有一个 requirement.txt 环境依赖,截止到2024.7.10,该文件的环境依赖如下
毫无疑问直接pip install -r requirement.txt,无论你的电脑有没有英伟达显卡,直接安装requirements.txt,安装的是cpu版本的torch,对于模型训练来说,cpu版本的torch奇慢,并且onnxruntime-gpu仅限有英伟达显卡的用户才能安装成功。 前面几个章节已经给出了正确安装pytorch的步骤,我们的环境中已经有torch了,因此,把上面的requirement.txt中的torch、torchvision、以及onnxruntime-gpu注释掉(几乎用不到,除非你用了onnx模型推理),然后在上述anaconda中的yolo10虚拟环境中安装剩余的依赖即可。
关于如何安装onnxruntime-gpu可以参考本人之前写的文章。
相关文章:

如何配置yolov10环境?
本文介绍如何快速搭建起yolov10环境,用于后续项目推理、模型训练。教程适用win、linux系统 yolo10是基于yolo8(ultralytics)的改进,环境配置跟yolo8几乎一模一样。 目录 第1章节:创建虚拟环境 第2章节:…...

『大模型笔记』GraphRAG:利用复杂信息进行发现的新方法!
GraphRAG:利用复杂信息进行发现的新方法! 文章目录 一. GraphRAG:利用复杂信息进行发现的新方法!1. 将RAG应用于私人数据集2. 整个数据集的推理3. 创建LLM生成的知识图谱4. 结果指标5. 下一步二. 参考文献微软官方推文:https://www.microsoft.com/en-us/research/blog/gra…...

数据结构1:C++实现变长数组
数组作为线性表的一种,具有内存连续这一特点,可以通过下标访问元素,并且下标访问的时间复杂的是O(1),在数组的末尾插入和删除元素的时间复杂度同样是O(1),我们使用C实现一个简单的边长数组。 数据结构定义 class Arr…...

C++入门基础篇(下)
目录 6.引用 6.1 引用的特性 6.2 const引用 7.指针和引用的关系 8.内联函数 9.nullptr 6.引用 引⽤不是新定义⼀个变量,⽽是给已存在变量取了⼀个别名,编译器不会为引⽤变量开辟内存空间, 它和它引⽤的变量共⽤同⼀块内存空间。比如&a…...

LabVIEW图像分段线性映射
介绍了如何使用LabVIEW对图像进行分段线性映射处理,通过对特定灰度值区间进行不同的线性映射调整,以优化图像的显示效果。案例中详细展示了如何配置和使用LabVIEW中的图像处理工具,包括设置分段区间、计算映射参数和应用映射函数等步骤。 实…...
Linux开发:进程件通过UDS传递内存文件句柄
Linux开发:进程间通过Unix Domain Socket传递文件描述符-CSDN博客 介绍了通过UDS传递文件描述符 Linux开发:通过memfd_create创建一个内存文件-CSDN博客 介绍了如果创建一个内存文件 将两者相结合,就可以通过UDS传递一块内存文件句柄也就是内存数据 //uds_fd.hpp #pragma …...

Internet Download Manager6.42最新下载器互联网冲浪小能手们!
今天我要来种草一个超级棒的宝贝——Internet Download Manager(简称 IDM)。这个小家伙简直是下载界的“速度与激情”代言人,让我彻底告别了等待的日子。🎉 IDM马丁正版下载如下: https://wm.makeding.com/iclk/?zoneid34275 …...
Vue 使用Audio或AudioContext播放本地音频
使用Audio 第一种 使用标签方式 <audio src"./tests.mp3" ref"audio"></audio><el-button click"audioPlay()">播放Audio</el-button>audioPlay() {this.$refs.audio.currentTime 0;this.$refs.audio.play();// this.$…...

从数据仓库到数据湖(上):数据湖导论
文章目录 一、什么是数据湖?起源数据湖的特征 二、为什么要用数据湖?三、数据湖与数据仓库的区别数据仓库和数据湖的对比 四、数据湖本质数据存储架构数据处理工具:三类第一类工具第二类工具第三类工具 小结 五、总结六、参考资料 一、什么是…...
Perl 语言开发(六):深入探索 Perl 中的数组与列表操作
目录 1. 数组和列表的基本概念 1.1 数组的定义与特点 1.2 列表的定义与特点 2. 数组的基本操作 2.1 访问数组元素 2.2 数组的长度 2.3 添加和删除元素 2.4 切片操作 2.5 迭代数组 3. 列表的常见操作 3.1 创建和使用列表 3.2 列表的上下文 3.3 列表和数组的转换 3…...

统一视频接入平台LntonCVS视频监控平台具体功能介绍
LntonCVS视频监控平台是一款基于H5技术开发的安防视频监控解决方案,专为全球范围内不同品牌、协议及设备类型的监控产品设计。该平台提供了统一接入管理,支持标准的H5播放接口,使其他应用平台能够快速集成视频功能。无论开发环境、操作系统或…...
redis的Bitmap 、HyperLogLog、Geo相关命令和相关场景
Bitmap 相关命令: #SETBIT - 设置指定位置的比特值。SETBIT key offset value # 将 key 对应的 bitmap 中第 offset 位设置为 value(0 或 1)。#GETBIT - 获取指定位置的比特值。GETBIT key offset # 返回 key 对应 bitmap 的第 offset 位的…...

✅小程序申请+备案教程
##red## 🔴 大家好,我是雄雄,欢迎关注微信公众号,雄雄的小课堂。 零、注意事项 需要特别注意的是,如果公司主体的微信公众号已经交过300块钱的认证费了的话,注册小程序通过公众号来注册,可以免…...
Google Guava Cache简介
目录 简介和Redis的区别 简介 Google Guava 是一个开源的 Java 库,其中提供了一系列强大的工具来简化 Java 开发工作。其中,Guava Cache 组件提供了一个内存缓存的实现,可以显著提高应用程序的性能。这是一个高效且灵活的缓存解决方案&#…...

githup开了代理push不上去
你们好,我是金金金。 场景 git push出错 解决 cmd查看 git config --global http.proxy git config --global https.proxy 如果什么都没有,代表没设置全局代理,此时如果你开了代理,则执行如下,设置代理 git con…...

【python】保存列表、字典数据到本地文件,以txt、json和pickle为例
Python保存列表、字典数据到本地文件(txt, json, pickle) 在Python编程中,我们经常需要将数据(如列表、字典等)保存到本地文件,以便后续读取、分析或与其他系统交换数据。Python提供了多种格式来保存这些数…...
每日新闻掌握【2024年7月9日 星期二】
2024年7月9日 星期二 农历六月初四 大公司/大事件 上半年新注册登记的新能源汽车创历史新高 据公安部统计,上半年新注册登记新能源汽车439.7万辆,同比增长39.41%,创历史新高。新能源汽车新注册登记量占汽车新注册登记量的41.42%。截至6月底…...

数据结构——Trie
题目: 维护一个字符串集合,支持两种操作: I x 向集合中插入一个字符串 x𝑥;Q x 询问一个字符串在集合中出现了多少次。 共有 N𝑁 个操作,所有输入的字符串总长度不超过 10^5,字符串仅…...

前端根据目录生成模块化路由routes
根据约定大于配置的逻辑,如果目录结构约定俗成,前端是可以根据目录结构动态生成路由所需要的 route 结构的,这个过程是要在编译时 进行,生成需要的代码,保证运行时的代码正确即可 主流的打包工具都有对应的方法读取文…...

Blender新手入门笔记收容所(一)
基础篇 基础操作 视角的控制 控制观察视角:鼠标中键平移视图:Shift鼠标中键缩放视图:滚动鼠标中键滚轮 选中物体后:移动物体快捷键G,移动后单击鼠标就会定下来。 进入移动状态后:按Y会沿着Y轴移动进入移动…...

【Axure高保真原型】引导弹窗
今天和大家中分享引导弹窗的原型模板,载入页面后,会显示引导弹窗,适用于引导用户使用页面,点击完成后,会显示下一个引导弹窗,直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...

深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...

python执行测试用例,allure报乱码且未成功生成报告
allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...
在 Spring Boot 项目里,MYSQL中json类型字段使用
前言: 因为程序特殊需求导致,需要mysql数据库存储json类型数据,因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...
离线语音识别方案分析
随着人工智能技术的不断发展,语音识别技术也得到了广泛的应用,从智能家居到车载系统,语音识别正在改变我们与设备的交互方式。尤其是离线语音识别,由于其在没有网络连接的情况下仍然能提供稳定、准确的语音处理能力,广…...
Android多媒体——音/视频数据播放(十八)
在媒体数据完成解码并准备好之后,播放流程便进入了最终的呈现阶段。为了确保音视频内容能够顺利输出,系统需要首先对相应的播放设备进行初始化。只有在设备初始化成功后,才能真正开始音视频的同步渲染与播放。这一过程不仅影响播放的启动速度,也直接关系到播放的稳定性和用…...

边缘计算设备全解析:边缘盒子在各大行业的落地应用场景
随着工业物联网、AI、5G的发展,数据量呈爆炸式增长。但你有没有想过,我们生成的数据,真的都要发回云端处理吗?其实不一定。特别是在一些对响应时间、网络带宽、数据隐私要求高的行业里,边缘计算开始“火”了起来&#…...
如何让非 TCP/IP 协议驱动屏蔽 IPv4/IPv6 和 ARP 报文?
——从硬件过滤到协议栈隔离的完整指南 引言 在现代网络开发中,许多场景需要定制化网络协议(如工业控制、高性能计算),此时需确保驱动仅处理特定协议,避免被标准协议(如 IPv4/IPv6/ARP)干扰。本文基于 Linux 内核驱动的实现,探讨如何通过硬件过滤、驱动层拦截和协议栈…...