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

文章目录

    • 去哪里下代码?
    • 怎么下代码?
    • 怎么装环境?
    • 命令行界面(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相关的工具和辅助函数。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【性能测试】基础知识篇-并发用户、RPS、TPS的解读

本文介绍并发用户、RPS、TPS的基本概念以及三者之间的关系。 术语定义 并发用户:在性能测试工具中,一般称为虚拟用户(Virtual User,简称VU),指的是现实系统中操作业务的用户。 说明 并发用户与注册用户、在…

2025考研 | 北京师范大学计算机考研考情分析

北京师范大学(Beijing Normal University)简称“北师大”,由中华人民共和国教育部直属,中央直管副部级建制,位列“211工程”、“985工程”,入选国家“双一流”、“珠峰计划”、“2011计划”、“111计划”、…

C++入门-stack和queue(下)

大家好啊,在这先祝天下的母亲节日快乐啦!现在呢,给大家带来C中priority_queue和容器适配器的相关知识点 3.1 C 中的优先队列(priority_queue)介绍 优先队列(priority_queue)是一种特殊的队列…

LeetCode343:整数拆分

题目描述 给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k > 2 ),并使这些整数的乘积最大化。 返回 你可以获得的最大乘积 。 代码 动态规划 class Solution { public:int integerBreak(int n) {/*dp[i]:表示对…

CANopen总线_CANOpen开源协议栈

CANopen是自动化中使用的嵌入式系统的通信协议栈和设备配置文件规范。就OSI 模型而言,CANopen 实现了以上各层,包括网络层。 CANopen 标准由一个寻址方案、几个小型通信协议和一个由设备配置文件定义的应用层组成。通信协议支持网络管理、设备监控和节点…

【c++】二叉搜索树(BST)

🔥个人主页:Quitecoder 🔥专栏:c笔记仓 朋友们大家好,本篇文章来到二叉搜索树的内容 目录 1.二叉搜索树的介绍2.二叉搜索树的操作与实现insert插入Find查找InOrder中序遍历Erase删除 3.二叉搜索树的应用(K…

代理IP可靠吗?哪里可以找到可靠的代理?

需要代理来访问受限制的网站或改善您的在线隐私?别再犹豫了!在这篇博文中,我们将探讨您可以使用的选项,并提供有关在哪里获取代理的指导。 首先,让我们了解什么是代理及其工作原理。代理充当您的设备和互联网之间的中介…

内容与图像一对多问题解决

场景复现 分析: 其实这是两给表,一个内容表,一个图片表,一对多的关系。 解决思路: 1. 先上传图片拿到图片的List集合ids,返回值是集合的ids,给到前端 2. 再添加内容表的数据生成了id,遍历查…

git版本控制器详解(3)本地和远端同步

为什么要使用gitee? gitee是基于git所搭建的网站,会给我们提供一个稳定的服务器保存我们的版本信息。因为github是国外网站,国内访问速度不够稳定,所以我们选择使用gitee。 前边我们讲解了如何在本地进行操作, 接下来进…

Ranger 面试题及答案整理,最新面试题

Ranger 的安全模型是如何设计的? Ranger的安全模型设计主要基于访问控制和安全策略的管理,它通过以下几个关键组件实现: 1、策略管理: Ranger 提供了一个中央管理平台,用于定义、更新和管理安全策略。这些策略根据资…

【小白入门篇6】常识|怎么计算模型需要的资源

01 背景 各个公司相继推出大模型, 有开源和不开源,有些技术爱好者也开始心痒难耐,萌生了私有本地模型,甚至有伙伴构建大模型并进行训练的想法, 大模型不仅比拼技术, 也是比拼爹(资源)的存在, 我个人在实战经历经常问自己,到底需要什么样配置才能跑起来这个模型, 完…

Mysql数据类型设计思考

一、Mysql数据类型设计规范 1.1 选择更小的数据类型 一般情况下,在满足存储要求的基础上,尽量选择小的存储类型。例如:存储0~200,tinyint和bigint都可以存储,那么选择tinyint。原因:越小的数据类型运算速…

【项目】Boost搜索引擎

项目相关背景 现在市面上已经出现很多搜索引擎,比如:百度、Google、Bing等等,它们都是全网性搜索 而我做得项目就像cplusplus网站中搜索C的相关知识一样,同样做的是站内搜索,它的搜索更垂直。 搜索引擎的宏观原理 ser…

模型 洋葱模型(组织管理方向)

系列文章 分享 模型,了解更多👉 模型_思维模型目录。层层深入,探索核心。 1 洋葱模型的应用 1.1 洋葱模型用于职业规划 有一个名叫李明的大学生,他最近感到迷茫和压力,因为他即将毕业并面临职业选择。李明决定寻求心…

Java中55种锁,高级面试题,最新面试题

Java中乐观锁在实际应用中如何解决并发问题? 乐观锁通过假设并发冲突发生概率较低来解决并发问题,主要通过数据版本控制实现。在更新数据前,会检查数据版本是否发生变化,只有在数据版本未变时才允许更新,这样可以避免…

uos server 无法通过ssh工具连接

问题现象 uos server 服务器操作系统 在虚拟机中安装好之后,防火墙已经关闭,ssh服务已经启动,但通过finalshell等ssh工具连接报错 :java.net.ConnectException: Connection timed out: connect 经过确认 防火墙已关,s…

计算机毕业设计springboot体育馆场地预约管理系统【附源码】

计算机毕业设计springboot体育馆场地预约管理系统[附源码] 🍅 作者主页 网顺技术团队 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 🍅 查看下方微信号获取联系方式 承接各种定制…

人工智能生成图像的兴起:区分事实与虚构

人工智能生成图像的兴起:区分事实与虚构 概述 在人工智能 (AI) 已融入我们日常生活的时代,人工智能生成图像的快速发展引发了人们对数字内容真实性的担忧。最近,人工智能生成的图像甚至欺骗了最敏锐的眼睛,这引发了人们对批判性…

@游戏行业er!MongoDB广州线下沙龙邀您报名!

随着游戏和应用程序的发展,数据变得越来越重要。在为您的下一个游戏选择数据库时,数据库管理者常常会面对灵活性、可扩展性、可靠性、运营效率等问题或挑战。 MongoDB在游戏开发领域有着广泛的应用,灵活数据模型可以存储和处理各种类型的数据…

OPT系列极速版远距离光数据传输器|光通讯传感器安装与调试方法

OPT系列极速版远距离光数据传输器|光通讯传感器使用红外激光通信,满足全双工 100M 带宽,通讯距离可达 300 米。能够快速,稳地传送数据,支持主流的工业控制总线(Profinet,Ethercat 等)&#xff1…