YOLOv8小白中的小白安装环境教程!没一个字废话,看一遍不踩坑!

news2025/4/7 7:07:22

文章目录

    • 去哪里下代码?
    • 怎么下代码?
    • 怎么装环境?
    • 命令行界面(CLI)指令和Python脚本区别?
    • 附录1 conda常用指令
    • 附录2 git常用指令
    • 附录3 项目代码文件作用


去哪里下代码?

下载代码请大家直接去 YOLOv8的官方仓库下载,名字叫 ultralytics,有些镜像网站和个人发的等来历不明的代码不要用!

官方仓库长这样子,先别着急下,看完这篇文章你会学到更高级的方法~

在这里插入图片描述


怎么下代码?

下载代码方式有三种:

  1. 直接下载代码压缩包

    • 直接下主分支代码压缩包(不推荐!)

    • 下发行版压缩包(可以,但有更好的方法!)

  2. pip install ultralytics (不要用!)

  3. git clone https://github.com/ultralytics/ultralytics.git (推荐!但有些人不会用git!😭)


直接下载主分支,不推荐!下文解释为什么。

在这里插入图片描述

下发行版,可以!发行版下载下来名字有-8.1.0后缀的。注意区分!

在这里插入图片描述

在这里插入图片描述

git没用过没关系,Linux一般都预装了,winmac直接来这里下载,无脑安装。

Git - Downloads (git-scm.com)


怎么装环境?

非常简单,就记住一条核心,别用 pip install ultralytics 这条指令!

pip install ultralytics 的确是一种装v8环境的方式,但是这不是给你们想对代码做改进的同学用的,是给那些不想对YOLOv8源代码做改动的同学用的!

如果你做改进,一定要将项目源代码放到本地的工作区!那就只能下载压缩包或者clone源代码

但是下载和clone也要注意,YOLOv8有很多的版本,版本是怎么产生的呢?在项目开发过程中,随着新功能的添加、旧问题的修复以及性能的优化,项目会不断地演进。每次对代码的重大更新或稳定的改进之后,开发者通常会发布一个新的版本,这样用户就可以使用到最新的功能和最佳的性能,这些版本没更新一次都更新到了v8项目的”主分支“,就是你每次默认下载的代码版本。

YOLOv8这个项目维护的非常的频繁,如果你每次都下载主分支,那你可能每次的代码都是不一样的,所以为了保证教程和学习的统一,我们一般使用”发行版“代码。

发行版是指在软件开发中,当一个产品或项目的特定版本准备好被广泛使用时,正式发布给公众的版本。发行版通常包含了从上一个正式发布的版本以来的所有更新,如新功能、改进、和bug修复。发行版通常都是非常稳定的,而且功能上也是很完整的,最主要的是用发行版可以保持你使用的代码版本和我教程的代码版本统一!

在这里插入图片描述

目前YOLOv8项目有两个发行版,v8.1.0v8.2.0 ,我这里使用的都是 v8.1.0,所以下面我的教程都是针对 v8.1.0 ,如果你想改进的是YOLO模型,不需要刻意追求最新的发行版, v8.1.0 对你来说完全够用。v8.1.0v8.2.0差别不是很大。

# 克隆代码
git clone https://github.com/ultralytics/ultralytics.git --branch v8.1.0

# 克隆后将路径切换到和pyproject.toml文件同级别,不然装环境会报错
cd ultralytics/

在这里插入图片描述
代码下到本地后开始安装依赖环境!

# 新建一个conda环境
conda create --name yolov8_env python=3.10 -y

# 切换到你新建的conda环境
conda activate yolov8_env

# 安装yolov8项目所需要的包
pip install -e .

如果在你训练时显示没有用到 gpu, 说明 torch ``torchvision这些包版本没对应,可以去Pytorch官网选择自己的安装指令,但是肯定有人不会选,那就输入下面的指令:

pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu113 -i https://pypi.tuna.tsinghua.edu.cn/simple

所以,从下代码到装环境,用下面的指令就可以无脑解决!就是这么简单。

  1. 克隆v8.1.0发行版代码
git clone https://github.com/ultralytics/ultralytics.git --branch v8.1.0
  1. 克隆后将路径切换到和 pyproject.toml 文件同级别,不然装环境会报错
cd ultralytics/
  1. 新建一个conda环境
conda create --name yolov8_env python=3.10 -y
  1. 切换到你新建的conda环境
conda activate yolov8_env
  1. 安装yolov8项目所需要的包
pip install -e .
  1. 如果无法使用GPU
pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu113 -i https://pypi.tuna.tsinghua.edu.cn/simple

命令行界面(CLI)指令和Python脚本区别?

当你YOLO环境安装好后你有两种训练方式:

  1. 一种就是用CLI,也就是 yolo task=detect mode=train model=yolov8n.pt args
  2. 第二种就是用我给的python脚本,【训练】【验证】【推理】

CLI是很方便快捷,但是很多指令你不会用!用不明白为什么非得用呢,用我给的脚本不好吗,各种参数,各种功能给你写的轻轻楚楚。


附录1 conda常用指令

  1. 创建新环境

    • conda create --name myenv:创建一个名为myenv的新环境。
    • conda create --name myenv python=3.8:创建一个包含指定Python版本(例如Python 3.8)的环境。
  2. 激活和停用环境

    • conda activate myenv:激活名为myenv的环境。
    • conda deactivate:停用当前环境。
  3. 安装包

    • conda install numpy:在当前活动环境中安装NumPy包。
    • conda install numpy=1.18:安装指定版本的NumPy。
    • conda install numpy scipy pandas:同时安装多个包。
  4. 查看环境列表

    • conda env listconda info --envs:列出所有Conda环境。
  5. 查看已安装的包

    • conda list:在当前环境中列出所有已安装的包。
    • conda list -n myenv:在指定环境myenv中列出所有已安装的包。
  6. 更新和删除包

    • conda update numpy:更新当前环境中的NumPy包。
    • conda remove numpy:从当前环境中删除NumPy包。
  7. 克隆环境

    • conda create --name myenv2 --clone myenv:从现有环境myenv克隆到新环境myenv2
  8. 删除环境

    • conda remove --name myenv --all:删除名为myenv的环境。
  9. 导出和导入环境

    • conda env export > environment.yml:导出当前环境到environment.yml文件。
    • conda env create -f environment.yml:根据environment.yml文件创建环境。

附录2 git常用指令

新手会 git clonegit pull 就够了!

  1. 配置用户信息

    • git config --global user.name "Your Name":设置全局用户名。
    • git config --global user.email "your.email@example.com":设置全局用户邮箱。
  2. 初始化和克隆仓库

    • git init:在当前目录初始化一个新的 Git 仓库。
    • git clone https://github.com/user/repo.git:克隆远程仓库到本地。
  3. 添加和提交更改

    • git add filename:将文件添加到暂存区。
    • git add .:将所有更改(当前目录及其子目录中的更改)添加到暂存区。
    • git commit -m "Commit message":提交暂存区的更改,并附加提交消息。
  4. 查看状态和日志

    • git status:查看当前工作目录状态(更改的文件、未追踪的文件等)。
    • git log:查看提交历史。
    • git log --oneline:查看压缩的提交历史。
  5. 分支管理

    • git branch:列出所有本地分支。
    • git branch new-branch:创建一个名为 new-branch 的新分支。
    • git checkout branch-name:切换到指定分支 branch-name
    • git checkout -b new-branch:创建并切换到新分支 new-branch
  6. 合并和解决冲突

    • git merge other-branch:将 other-branch 分支合并到当前分支。
    • 在合并过程中,如果遇到冲突,需手动解决冲突的文件,然后使用 git add 将其标记为已解决。
  7. 推送和拉取

    • git push origin branch-name:将本地分支 branch-name 推送到远程仓库。
    • git pull origin branch-name:从远程仓库拉取 branch-name 分支并自动合并到当前分支。
  8. 撤销操作

    • git checkout -- filename:放弃对文件的未暂存的更改。
    • git reset HEAD filename:从暂存区撤销对文件的添加。
    • git reset --hard commitID:重置当前分支到指定提交,丢弃此后的所有更改。
  9. 查看更改

    • git diff:显示暂存区和工作目录的差异。
    • git diff --staged:显示已暂存的与上次提交的差异。

附录3 项目代码文件作用

在这里插入图片描述

  • assets - 存放图片资源,用于模型测试或示例。

    • bus.jpg - 测试图片,公交车图像。
    • zidane.jpg - 测试图片,足球运动员齐达内的图像。
  • cfg - 配置文件目录,包含模型和数据集的配置。

    • datasets - 各种数据集的配置文件,如COCO、DOTA等。
    • models - 各种模型的配置文件,如YOLOv3、YOLOv5等。
    • trackers - 跟踪算法的配置文件,如ByteTrack、BOTSort等。
  • data - 与数据处理相关的脚本和模块。

    • annotator.py - 数据注释工具。
    • augment.py - 数据增强模块。
    • dataset.py - 数据集加载和处理。
  • engine - 模型训练、评估、导出等核心功能。

    • exporter.py - 模型导出工具。
    • trainer.py - 模型训练器。
    • validator.py - 模型验证器。
  • hub - 与模型集成和管理相关的模块。

    • auth.py - 授权和认证处理。
    • session.py - 会话管理。
  • models - 包含多种不同模型的定义和训练逻辑。

    • rtdetr - RT-DETR模型的实现。
    • yolo - YOLO模型系列的实现,包括检测、姿态估计、目标跟踪等。
  • nn - 神经网络基础模块,如层定义、块定义等。

    • autobackend.py - 自动选择后端处理。
    • modules - 网络层和组件的定义。
  • solutions - 特定问题的解决方案,如目标计数、速度估计等。

    • object_counter.py - 目标计数。
    • speed_estimation.py - 速度估计。
  • trackers - 目标跟踪算法的实现。

    • byte_tracker.py - ByteTrack算法的实现。
    • utils - 跟踪相关的工具,如卡尔曼滤波器等。
  • utils - 各种工具和辅助功能。

    • downloads.py - 下载工具。
    • torch_utils.py - PyTorch相关的工具和辅助函数。

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

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

相关文章

内存屏障 - LINUX KERNEL MEMORY BARRIERS 上 与 下

内存屏障(Memory Barrier)是在计算机体系结构中使用的一种同步机制,用于确保在多线程或多核处理器环境中,对共享内存的操作按照预期顺序进行。它们通过强制在特定点执行一些指令来规定内存访问的顺序,并防止内存乱序执…

MySQL的msi格式安装

一、下载链接 MySQL :: Download MySQL Installer (Archived Versions) 二、安装步骤 ①选择自定义安装 ②选择要安装的产品 ③安装依赖环境 ④安装 ⑤点击下一步 ⑥配置 ⑦设置密码 ⑧命名 ⑨数据存放路径 ⑩安装配置 ①①配置环境变量 ①②验证 方法一: 方法二…

触摸OpenNJet,云原生世界触手可及

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​💫个人格言:“没有罗马,那就自己创造罗马~” 文章目录 导言OpenNJet云原生引擎介绍云原生平台的介绍优化与创新 为什么选择OpenNJet云原生引擎如何在windo…

探索未知:风靡硅谷开发者的 Unstructured Data Meetup 即将登陆中国

“最硅谷”的 Unstructured Data Meetup 即将来袭! 众所周知,AI 三要素包括:算力、算法和数据。数据的价值愈发凸显,而其中非结构化数据更是备受关注。IDC 预测,到 2025 年,全球数据总量中将有超过 80% 的数…

Unreal Engine插件打包技巧

打开UE工程,点击编辑,选择插件,点击"打包"按钮,选择输出目录UE4.26版本打包提示需要VS2017问题解决 1)用记事本打开文件【UE4对应版本安装目录\Epic Games\UE_4.26\Engine\Build\BatchFiles\RunUAT.bat】 2&…

cookie、session、token、表单、json、jsonp、websocket、ajax都是什么

前后端数据交互的几种方式 1.cookie Cookie是服务器保存在客户端的一小段数据,(使用Cookie的前提是客户端浏览器允许使用Cookie并对此做出相应的设置。) cookie是一种存储在用户计算机上的小型数据文件,常用于在web应用程序中跟…

【计算机网络】数据链路层 组帧 习题4

组帧 发送方根据一定的规则将网络层递交的分组封装成帧(也称为组帧)。 组帧时,既要加首部,也要加尾部,原因是,在网络信息中,帧是以最小单位传输的。所以接收方要正确地接收帧,就必须清楚该帧在一串比特串中…

Python如何绘制直流电机开闭环特性曲线?matplotlib

import matplotlib.pyplot as plt from pylab import mplmpl.rcParams[font.sans-serif] [FangSong] # 指定默认字体 mpl.rcParams[axes.unicode_minus] False # 解决保存图像是负号-显示为方块的问题# 数据集1 n1 [1206, 1174, 1141, 1116, 1037, 986] Id1 [0.505, 0.55…

实训一:设计系统主页作业

1.题目 设计系统主页。 2.目的 (1)熟悉Web前端项目开发环境。 (2)掌握如何建立Web前端项目,学会规划项目结构。 (3)掌握动态生成页面内容的方法。 (4)理解如何使用Flash显示图片新闻。 (5)会在应用系统中编写播放动态新闻的程序。 3.内容 建立项目结构,并…

户外无比精彩 ,体育无处不在!CISP深圳国际体育展官宣2025年重磅来袭

CISP深圳国际体育展【 同期举办:COSP深圳国际户外展 】 时间:2025年2月27-3月1日 地点:深圳(福田会展中心) 主办单位:东莞市体育产业协会 协办单位:中国户外探险联盟 深圳市登山户外运动协…

无人机+通信中继:短波电台技术详解

随着无线通信技术的不断发展,无人机作为一种新型的信息传输平台,已经在多个领域得到了广泛应用。其中,无人机与短波电台的结合,为通信中继领域带来了全新的可能性。本文将详细解析无人机在通信中继中的应用,以及短波电…

ASP.NET医药进销存系统

摘 要 目前,大中型城市的多数药品店已经实现了商品管理、客户管理、销售管理及销售管理等的信息化和网络化,提高了管理效率。但是,在大多数小药品店,药品店管理仍然以传统人工管理为主,特别是在药品的采购、销售、库…

Q1咖啡机行业线上市场(京东天猫淘宝)销售数据分析

回顾疫情那几年,咖啡机市场可能是大环境带动下爆发飞速的品类之一。在整体厨房小家电大盘销售不佳的情况下, 咖啡机市场的表现是亮眼的。而今年Q1季度,在厨卫小电市场整体低迷的状态下,咖啡机市场依然保持着稳中向好的趋势。 根据…

哈希重要思想——位图详解

一,概念 所谓位图,就是用每一位来存放某种状态,适用于海量数据,数据无重复的场景。通常是用来判断某个数据存不存在的。 为了方便理解我们引入一道面试题, 给40亿个不重复的无符号整数,没排过序。给一个无…

形位公差Overview of GDT

零件公差产生于十九世纪后期,其初衷是为了保证零件的互换性。起初只有尺寸公差。由于 当时的设计部门和制造部门通常都在一起或就在隔壁,因此交流起来非常方便。在当时,给 定的公差一般都很大,因此当时的设备刀具的能力对于保证产…

【C++要哮着学】初识C++,什么是C++?什么是命名空间?什么又是缺省函数?

文章目录 前言1、C简介1.1、什么是C1.2、C起源1.3、C发展 2、C关键字(C98)3、命名空间3.1、命名空间的定义及使用3.2、命名空间的嵌套3.3、命名空间的三种使用方式3.3.1、加命名空间名称及作用域限定符3.3.2、使用using将命名空间中某个成员引入3.3.3、使…

【MySQL的内外连接】

文章目录 一、内连接二、外连接1.左外连接2.右外连接 一、内连接 基本语法: select 字段 from 表1 inner join 表2 on 连接条件 and 其他条件;(这里的and,也可以修改成where,并且建议使用where,逻辑更清晰…

何为LCA(最近共同祖先)?

原篇:(ACM算法)tarjan算法求LCA - 知乎 (zhihu.com) 顾名思义,就是求两个节点最近的共同祖先,就好比下图,2和3的共同祖先为3,2和4的共同祖先为1。 关于LCA求解有3种算法。 1.标记回溯法&#…

2024期从、证从、基从、银从备考资料及互助交流群

快进,2024年 金融考证备考资料及互助交流备考群,考啥进啥 5.12 (基从)基金从业资格考试 5.18(期从)期货从业资格考试 6.1 (证从)证券从业资格考试 6.1~6.2(银…

MySQL从入门到高级 --- 6.函数

文章目录 第六章:6.函数6.1 聚合函数6.2 数学函数6.3 字符串函数6.4 日期函数6.4.1 日期格式 6.5 控制流函数6.5.1 if逻辑判断语句6.5.2 case when语句 6.6 窗口函数6.6.1 序号函数6.6.2 开窗聚合函数6.6.3 分布函数6.6.4 前后函数6.6.5 头尾函数6.6.6 其他函数6.7 …