从混乱到规范:YOLOv8 CPU训练项目GitHub上传全流程(超详细避坑指南)
从混乱到规范:YOLOv8 CPU训练项目GitHub上传全流程(超详细避坑指南)
一、前言
作为一名开发者,将本地项目上传到 GitHub 是基础操作,但实际过程中容易遇到 SSH 配置、分支冲突、提交记录混乱、空文件夹不上传等问题。本文以「YOLOv8 CPU 训练项目」为例,详细记录从本地代码初始化到 GitHub 规范托管的完整流程,包含「环境配置→SSH 密钥→本地提交→远程推送→分支清理→记录重置」6 大阶段,补充 10+ 操作截图说明、命令参数解析、分步验证细节,以及 6 个高频易错点的深度原因和多重解决方案,适合新手直接套用,也可作为问题排查手册。
二、核心需求
-
将本地 YOLOv8 CPU 训练项目(含中文命名文件、多文件夹,部分文件夹曾为空)完整上传到 GitHub;
-
统一使用
main分支作为默认分支,删除冗余的master分支,对齐 GitHub 主流规范; -
提交记录清晰简洁,避免重复提交、注释模糊、历史记录混乱等问题;
-
确保所有文件夹(包括曾为空的文件夹)都能在 GitHub 上正常显示,无缺失。
三、前期准备(含细节补充)
1. 环境配置(分步验证)
-
本地环境:Windows 10 操作系统 + Git Bash(需提前安装 Git,版本建议 2.30 以上);
- 安装 Git 后,必须配置用户名和邮箱(否则无法提交):
git config --global user.name "用户名" # 替换为你的 GitHub 用户名
git config --global user.email "邮箱" # 替换为你的 GitHub 注册邮箱
- 验证配置是否成功:
git config --global --list # 输出中能看到 user.name=用户名、user.email=邮箱 即为成功
-
远程平台:GitHub 账号 + 新建空白仓库;
- 新建仓库步骤(带截图说明文字):
-
登录 GitHub 后,点击右上角「+」号 → 选择「New repository」(新建仓库);
-
仓库配置页面填写(截图对应区域说明):
-
Repository name:
yolov8-cpu-training(仓库名,建议与本地项目根目录名一致,便于记忆); -
Description(可选):
YOLOv8 CPU Training Project - 包含训练脚本、配置文件、数据集文件夹、预训练模型(简要描述项目,方便他人理解); -
Visibility:根据需求选择「Public」(公开,可被搜索)或「Private」(私有,仅自己可见);
-
关键设置(必看):取消勾选「Add a README file」(重要!若勾选,远程仓库会生成初始文件,导致后续本地推送时出现冲突);
-
其他选项:「Add .gitignore」(暂不勾选,后续可手动添加)、「Choose a license」(暂不勾选,开源项目可后续补充);
-
点击页面底部「Create repository」按钮,完成空白仓库创建。
-
新建成功后,仓库页面会显示「Quick setup」(快速设置)界面,复制 SSH 地址(后续关联本地仓库用):
git@github.com``:用户名/yolov8-cpu-training.git(截图中「SSH」选项卡下的地址)。 -
关键工具:SSH 密钥(用于本地与 GitHub 免密认证,解决 HTTPS 连接频繁输密码、网络不稳定的问题)。
2. 项目结构(带文件功能说明)
new\_train/ # 本地项目根目录(需与仓库名保持一致,便于管理)
├─ README.md # 项目说明文档(含环境配置步骤、依赖安装、训练命令、文件说明)
├─ train\_.py # 核心训练脚本(YOLOv8 CPU 训练主程序,含数据加载、模型初始化、训练循环)
├─ train\_v1.1.py # 训练脚本迭代版(优化数据增强逻辑、修复 CPU 推理速度瓶颈)
├─ requirements.txt # 依赖清单(明确版本号,避免环境冲突,如 ultralytics==8.0.180、numpy==1.24.3)
├─ yolov8n.pt # YOLOv8 纳米版预训练模型(CPU 推理轻量化选择,文件大小约 6MB)
├─ 训练脚本.py # 中文命名辅助脚本(测试 CPU 环境兼容性,验证中文文件名是否正常识别)
├─ config/ # 配置文件夹(存放训练、推理相关参数配置)
│ ├─ total\_config.yaml # 核心配置文件(设置学习率、迭代次数、批量大小、数据集路径等)
│ └─ total\_config - 备份.yaml # 配置文件备份(避免误改后无法恢复)
├─ dataset/ # 数据集文件夹(初始为空,后补充测试文件确保文件夹上传)
│ └─ test/ # 测试数据集子文件夹
│ └─ 测试图片说明.txt # 占位文件(原文件夹为空,添加后可被 Git 跟踪)
├─ output/ # 输出文件夹(存放训练日志、推理结果)
│ └─ 训练日志.txt # 训练过程日志(记录损失值、精度变化)
├─ runs/ # 训练结果文件夹(存放模型权重、验证指标图)
│ └─ 训练结果说明.txt # 占位文件(确保文件夹被 Git 识别)
└─ scripts/ # 辅助脚本文件夹(存放数据预处理、结果可视化脚本)
  └─ auto\_process\_dataset.py # 数据集自动处理脚本(批量转换标注格式、划分训练/验证集)
说明:
dataset/、
runs/初始为空,若不添加占位文件(如
.gitkeep、
说明.txt),Git 会忽略这些文件夹,导致上传后 GitHub 看不到。
四、完整操作流程(分阶段 + 分步验证 + 截图说明)
阶段 1:SSH 密钥配置(免密认证核心,解决连接问题)
目标:配置本地 SSH 密钥并关联 GitHub,实现本地仓库与远程仓库的免密通信,避免 HTTPS 连接的各种问题。
步骤 1.1:生成 SSH 密钥(本地操作)
-
打开 Git Bash 终端(Windows 可通过「开始菜单→Git→Git Bash」启动,终端图标为黑色背景白色文字);
-
输入密钥生成命令(ED25519 算法更安全,推荐使用):
ssh-keygen -t ed25519 -C "邮箱" # 引号内替换为你的 GitHub 注册邮箱(与前期配置一致)
- 执行命令后,终端会提示以下信息,全程按回车键(Enter)确认,无需输入额外内容:
-
提示 1:
Enter file in which to save the key (/c/Users/你的Windows用户名/.ssh/id_ed25519):(默认保存路径,无需修改); -
提示 2:
Enter passphrase (empty for no passphrase):(设置密钥密码,为空则免密,直接回车); -
提示 3:
Enter same passphrase again:(再次输入密码,为空则直接回车)。
- 生成成功后,终端会显示密钥指纹和随机艺术图案(无需记录,确认生成即可)。
步骤 1.2:查看并复制公钥(本地操作)
- 输入命令,查看公钥文件内容:
cat \~/.ssh/id\_ed25519.pub # 读取 ED25519 算法的公钥文件
- 终端输出类似以下内容,复制完整公钥(从 ssh-ed25519 开头到邮箱结尾,包括所有字符,不要遗漏或多复制空格):
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILXzU8cG8R9z6X3nQwMfEe9QZ7X7aZ9X7bZ8X9cZ0X1Y2Z3X4Y5Z6 邮箱
易错点:复制时若遗漏字符或多复制换行,会导致后续 SSH 验证失败,建议用鼠标选中后右键复制(Git Bash 中选中即复制)。
步骤 1.3:在 GitHub 中添加公钥(网页操作)
-
登录 GitHub 账号,点击右上角头像 → 选择「Settings」(设置);
-
在左侧菜单栏中,找到并点击「SSH and GPG keys」(SSH 和 GPG 密钥);
-
点击页面右上角「New SSH key」(新建 SSH 密钥);
-
填写密钥信息(截图对应区域说明):
-
Title(标题):自定义名称,便于区分设备,如「Windows 本地机 - 办公电脑」;
-
Key type(密钥类型):默认选择「Authentication key」(认证密钥);
-
Key(密钥):粘贴步骤 1.2 复制的完整公钥(确保无遗漏、无多余空格);
- 点击页面底部「Add SSH key」(添加 SSH 密钥),完成配置。
步骤 1.4:验证 SSH 连接(本地操作)
- 在 Git Bash 中输入验证命令:
ssh -T git@github.com
- 首次验证时,终端会提示「是否继续连接」,输入
yes(小写,无需加引号),按回车键:
The authenticity of host 'github.com (140.82.114.4)' can't be established.
ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/\[fingerprint])? yes
- 若验证成功,终端会输出:
Hi 用户名! You've successfully authenticated, but GitHub does not provide shell access.
(提示:“GitHub does not provide shell access” 是正常信息,无需担心)
易错点 1:SSH 验证提示「Permission denied (publickey)」
- 原因分析:
-
公钥复制不完整(漏开头「ssh-ed25519」或结尾邮箱);
-
本地生成的密钥文件与 GitHub 配置的密钥算法不一致(如本地用 RSA,GitHub 粘贴的是 ED25519);
-
Windows 系统下
.ssh文件夹权限过高(Git 拒绝使用权限开放的密钥文件)。
- 解决方案:
-
重新生成并复制公钥:按步骤 1.1-1.2 重新操作,确保公钥完整复制(无换行、无多余字符);
-
检查密钥算法一致性:若本地用 RSA 算法(命令
ssh-keygen -t rsa -C "邮箱"),则复制~/.ssh/id_rsa.pub中的公钥; -
调整
.ssh文件夹权限(Windows):
-
找到文件夹
C:\Users\你的Windows用户名\.ssh,右键 → 属性 → 安全 → 高级; -
禁用「继承」,删除除当前用户外的所有权限(仅保留自己的读写权限);
-
应用后重新执行
ssh -T ``git@github.com验证。
阶段 2:本地仓库初始化与文件提交(确保所有文件被跟踪)
目标:将本地项目文件夹初始化为 Git 仓库,添加所有文件到暂存区,提交到本地仓库,确保中文文件、空文件夹(含占位文件)都被正确跟踪。
步骤 2.1:进入本地项目根目录(本地操作)
- 在 Git Bash 中输入命令,切换到本地项目根目录(需替换为你的实际路径):
cd /c/Users/你的Windows用户名/Desktop/new\_train # 示例路径,需根据实际修改
验证:输入
ls命令(列出当前目录文件),若输出与项目结构一致(如
README.md
、
train_.py
等),说明路径正确。
步骤 2.2:初始化 Git 仓库(本地操作)
- 输入初始化命令,将当前文件夹变为 Git 可管理的仓库:
git init
- 成功后终端输出:
Initialized empty Git repository in C:/Users/你的Windows用户名/Desktop/new_train/.git/(表示本地仓库创建成功,根目录下会生成隐藏的.git文件夹,用于存储仓库配置和提交记录)。
步骤 2.3:处理空文件夹(确保文件夹被跟踪)
- 如项目结构中
dataset/test/、runs/等文件夹初始为空,需添加占位文件(Git 不跟踪空文件夹):
\# 给每个空文件夹添加 .gitkeep 占位文件(约定俗成的命名,Git 不会忽略)
touch dataset/test/.gitkeep
touch runs/.gitkeep
touch output/.gitkeep # 若 output 文件夹为空,同样添加
替代方案:也可添加
README.md或
说明.txt(含文件夹功能说明),比
.gitkeep更实用(他人查看仓库时能了解文件夹用途)。
步骤 2.4:添加所有文件到暂存区(本地操作)
- 输入命令,将项目中所有文件(包括子目录、中文文件、占位文件)添加到 Git 暂存区:
git add .
-
命令解析:
git add是添加文件到暂存区的命令,.表示当前目录下所有文件(包括子目录,递归添加); -
验证:输入
git status命令,若输出「Changes to be committed」(待提交的更改),且列出所有文件(无遗漏),说明添加成功。
步骤 2.5:提交文件到本地仓库(本地操作)
- 输入提交命令,将暂存区的文件提交到本地仓库,并填写清晰的提交注释(便于后续查看提交记录):
git commit -m "初始化YOLOv8 CPU训练项目:包含核心训练脚本、配置文件、数据集文件夹、预训练模型、依赖清单"
-
命令解析:
-
git commit:提交暂存区文件到本地仓库; -
-m:直接在命令后填写提交注释(必填,无注释无法提交); -
注释规范:简洁明了,说明本次提交的内容(如 “初始化项目”“修复 XXbug”“新增 XX 功能”),避免模糊表述(如 “更新文件”“测试”)。
-
- 成功后终端输出类似内容(表示所有文件提交成功):
\[master (root-commit) e5f8989] 初始化YOLOv8 CPU训练项目:包含核心训练脚本、配置文件、数据集文件夹、预训练模型、依赖清单
13 files changed, 1313 insertions(+)
create mode 100644 README.md
create mode 100644 "训练脚本.py"
create mode 100644 config/total\_config.yaml
...(列出所有新增文件)
易错点 2:空文件夹上传后 GitHub 看不到
-
原因分析:Git 的设计逻辑是 “跟踪文件变化”,空文件夹无内容可跟踪,因此
git add .不会添加空文件夹; -
解决方案:
-
给空文件夹添加占位文件(如
.gitkeep、README.md),再执行git add .; -
验证:提交后输入
git status,若文件夹下的占位文件显示为「committed」,说明已被跟踪; -
后续若给文件夹添加实际文件,可删除占位文件(执行
rm 文件夹/.gitkeep),再提交更新。
易错点 3:Git Bash 中中文文件名显示乱码(如 \350\256\255...)
-
现象:执行
ls或git status时,中文文件名显示为一串转义字符(如\350\256\255\347\273\203\347\216\257.py); -
原因分析:Git Bash 默认使用 UTF-8 编码,但 Windows 系统本地文件编码为 GBK,导致中文显示不兼容;
-
解决方案(可选):
-
临时解决(当前终端有效):输入命令
export LANG=zh_CN.GBK,中文文件名会正常显示; -
永久解决(所有终端有效):
-
打开 Git Bash → 右键点击窗口标题栏 → Options → Text → Local(选择「zh_CN」)、Character set(选择「GBK」);
-
重启 Git Bash,中文文件名即可正常显示;
-
关键说明:即使 Git Bash 中显示乱码,推送到 GitHub 后,中文文件名会正常显示(GitHub 支持 UTF-8 编码),不影响文件访问和使用,无需强制修改。
阶段 3:关联远程仓库并强制推送(避免冲突,确保内容一致)
目标:将本地仓库与 GitHub 空白仓库建立关联,通过强制推送覆盖远程内容(因远程是空白仓库,强制推送无风险),确保本地所有文件上传到 GitHub main 分支。
步骤 3.1:关联 GitHub 远程仓库(本地操作)
- 输入命令,关联之前新建的 GitHub 空白仓库(替换为你的 SSH 地址):
git remote add origin git@github.com:用户名/yolov8-cpu-training.git
-
命令解析:
-
git remote add:添加远程仓库关联; -
origin:远程仓库的默认别名(可自定义,如github,但建议用origin,符合行业规范); -
后面的 SSH 地址:从 GitHub 仓库「Quick setup」中复制的 SSH 地址。
-
- 验证关联是否成功:
git remote -v
若输出以下内容,说明关联成功(显示远程仓库的 fetch 和 push 地址):
origin git@github.com:用户名/yolov8-cpu-training.git (fetch)
origin git@github.com:用户名/yolov8-cpu-training.git (push)
步骤 3.2:强制推送本地内容到远程 main 分支(本地操作)
- 输入强制推送命令(因本地仓库是全新提交,远程是空白仓库,强制推送无风险):
git push -f origin master:main
-
命令解析:
-
-f:force(强制)推送,用于覆盖远程仓库内容(单人仓库、远程是空白仓库时安全使用); -
master:main:本地分支master(Git 初始化默认分支名)推送到远程分支main(GitHub 新建仓库默认分支名),实现 “本地分支→远程分支” 的映射;
-
- 成功后终端输出类似内容(表示所有文件已上传到远程
main分支):
Enumerating objects: 13, done.
Counting objects: 100% (13/13), done.
Delta compression using up to 12 threads
Compressing objects: 100% (13/13), done.
Writing objects: 100% (13/13), 5.80 MiB | 2.20 MiB/s, done.
Total 13 (delta 0), reused 0 (delta 0), pack-reused 0
To github.com:用户名/yolov8-cpu-training.git
\* \[new branch] master -> main (forced update)
步骤 3.3:将本地分支重命名为 main(对齐远程规范)
- 为了让本地分支名与远程分支名一致(均为
main,便于后续操作),输入重命名命令:
git branch -M main
- 命令解析:
-M是强制重命名(若本地已有main分支,会覆盖,此处因是全新仓库,无冲突);
- 验证重命名成功:
git branch # 输出 \`\* main\`,表示当前分支是 main
- 重新建立本地与远程
main分支的跟踪关系(后续推送无需写分支名):
git push -u origin main
- 成功后终端输出:
branch 'main' set up to track 'origin/main'. Everything up-to-date(表示跟踪关系建立,且本地与远程内容一致)。
易错点 4:推送时提示「! [rejected] main -> main (fetch first)」
-
原因分析:远程仓库不是空白仓库(如新建仓库时勾选了「Add a README file」,或之前推送过内容),导致远程分支有本地没有的提交记录,Git 拒绝直接推送(避免覆盖远程内容);
-
解决方案(分场景):
注意:多人协作仓库禁止使用
git push -f,会覆盖他人提交记录,导致代码丢失。
- 场景 1:远程仓库是新建的,仅含 README 等初始文件(无重要内容)→ 强制推送覆盖(单人仓库首选):
git push -f origin main # 强制覆盖远程内容,本地内容为准
- 场景 2:远程仓库有重要内容(如他人协作提交)→ 先拉取合并再推送:
git pull origin main --allow-unrelated-histories # 拉取远程内容并合并(--allow-unrelated-histories 解决无关联历史冲突)
git push origin main # 合并后推送
易错点 5:关联远程仓库时提示「fatal: remote origin already exists」
-
原因分析:之前已关联过远程仓库(如测试时关联了错误地址,或重复执行了
git remote add origin命令); -
解决方案:
- 先删除旧的关联:
git remote remove origin
- 重新执行关联命令:
git remote add origin git@github.com:用户名/yolov8-cpu-training.git
- 验证:
git remote -v查看是否关联正确。
阶段 4:清理冗余分支(删除 master 分支,统一 main 分支)
目标:删除 GitHub 上可能存在的 master 分支(若有),仅保留 main 分支作为默认分支,对齐 GitHub 主流规范(GitHub 现已将默认分支名从 master 改为 main)。
步骤 4.1:查看远程分支(本地操作)
- 输入命令,查看 GitHub 上的分支列表:
git branch -r
-
若输出
origin/main(无origin/master),说明远程只有main分支,无需删除; -
若输出
origin/master和origin/main,说明远程存在master分支,需执行删除。
步骤 4.2:删除远程 master 分支(本地操作)
- 输入删除命令:
git push origin --delete master
- 成功后终端输出:
To github.com:用户名/yolov8-cpu-training.git - [deleted] master(表示远程master分支已删除)。
步骤 4.3:处理删除失败(提示「Cannot delete the default branch」)
-
原因分析:GitHub 仓库的默认分支仍为
master,默认分支不允许直接删除; -
解决方案(网页操作):
-
打开 GitHub 仓库 → 点击顶部「Settings」→ 左侧菜单栏「Branches」;
-
在「Default branch」(默认分支)下拉框中,选择
main分支; -
点击下拉框下方「Update」按钮(更新默认分支);
-
回到 Git Bash,重新执行
git push origin --delete master,即可成功删除。
阶段 5:提交记录重置(针对历史记录混乱的补救方案)
目标:若之前推送过错误提交(如注释模糊、重复提交、分支冲突导致的混乱记录),可通过 “本地重置 + 强制推送” 清理历史,重新上传干净的提交记录(本文前期已用此方案解决混乱问题)。
步骤 5.1:本地仓库重置(删除旧提交记录)
- 进入本地项目根目录,输入命令删除旧的 Git 配置(谨慎!会清除所有本地提交记录,仅保留文件):
rm -rf .git # 删除隐藏的 .git 文件夹,彻底重置本地仓库
- 重新初始化仓库、添加文件、提交(与阶段 2 步骤一致):
git init # 重新初始化
git add . # 添加所有文件(含占位文件)
git commit -m "初始化YOLOv8 CPU训练项目:核心脚本+配置+数据集+预训练模型" # 清晰注释
步骤 5.2:强制推送覆盖远程(清理远程历史记录)
- 重新关联远程仓库(若之前删除过关联):
git remote add origin git@github.com:用户名/yolov8-cpu-training.git
- 强制推送本地全新提交,覆盖远程所有历史记录:
git push -f origin main
- 验证:GitHub 仓库提交记录中仅保留一条清晰的初始化提交,无任何混乱历史。
易错点 6:重置后推送提示「failed to push some refs to 'git@github.com:...'」
-
原因分析:远程仓库有新的提交记录(如他人协作提交,或自己在 GitHub 网页上修改过文件),与本地重置后的提交记录冲突;
-
解决方案:
- 单人仓库(无他人协作):再次执行强制推送(确保本地内容覆盖远程):
git push -f origin main
- 有他人协作:先拉取远程内容,手动解决冲突后再推送(不推荐重置历史,会影响他人工作)。
五、最终验证(确保所有需求达成)
打开 GitHub 仓库页面(https://github.com/用户名/yolov8-cpu-training),按以下 4 点验证:
-
提交记录验证:仓库主页顶部「Latest commit」显示唯一一条提交记录,注释为「初始化 YOLOv8 CPU 训练项目:核心脚本 + 配置 + 数据集 + 预训练模型」(无重复、无模糊注释);
-
文件完整性验证:仓库文件列表与本地项目结构一致,所有文件夹(
config/、dataset/、scripts/等)和文件(含中文命名文件、预训练模型yolov8n.pt)都完整显示,无缺失; -
分支状态验证:仓库顶部分支下拉框中仅显示
main分支(无master分支),默认分支为main; -
SSH 关联验证:后续修改本地文件后,执行
git add .→git commit -m "更新说明"→git push,无需输入密码即可成功推送(免密认证生效)。
六、后续常规操作(代码更新流程)
上传成功后,后续修改代码、新增文件时,只需执行以下 3 步(无需重复配置):
-
修改本地文件:如优化
train_.py逻辑、新增data_visualization.py脚本、更新requirements.txt依赖等; -
提交到本地仓库:
git add . # 添加所有修改/新增的文件
git commit -m "优化CPU训练速度:修复数据加载瓶颈" # 清晰说明更新内容
- 推送到 GitHub:
git push # 已建立跟踪关系,无需写分支名和仓库地址
七、总结(核心流程 + 避坑要点)
1. 核心流程(精简版,可直接套用)
graph TD
A[环境配置:Git + GitHub 空白仓库] --> B[SSH 密钥配置:生成→复制→添加→验证]
B --> C[本地操作:初始化仓库→添加占位文件→add→commit]
C --> D[关联远程仓库:git remote add origin SSH地址]
D --> E[推送:git push -f origin master:main]
E --> F[清理分支:删除master→设置main为默认分支]
F --> G[后续更新:add→commit→push]
2. 核心避坑要点
-
新建仓库时务必取消勾选 README,避免初始冲突;
-
空文件夹必须添加占位文件(.gitkeep 或 README),否则 Git 不跟踪;
-
单人仓库可放心使用
git push -f覆盖内容,多人协作禁止使用; -
SSH 验证失败先检查公钥是否完整、算法是否一致、文件夹权限是否正确;
-
提交注释要清晰,避免 “测试”“更新” 等模糊表述,便于后续追溯。
3. 常见问题速查
| 问题现象 | 直接解决方案 |
|---|---|
| SSH 验证 Permission denied | 重新生成并复制完整公钥,调整 .ssh 文件夹权限 |
| 空文件夹上传后看不到 | 添加 .gitkeep 占位文件,重新 add + commit + push |
| 推送提示 rejected (fetch first) | 单人仓库:git push -f origin main;协作仓库:git pull --allow-unrelated-histories |
| 中文文件名乱码 | Git Bash 中执行 export LANG=zh_CN.GBK,或修改终端编码为 GBK |
| 无法删除 master 分支 | 先在 GitHub 把默认分支改为 main,再执行删除命令 |
通过本文流程,可实现本地项目到 GitHub 的规范上传,解决提交记录混乱、文件缺失、连接失败等常见问题。对于新手而言,无需纠结 Git 高级功能,掌握 “初始化→add→commit→push” 核心流程 + 本文避坑要点,即可顺利完成代码托管。后续若需多人协作、分支管理、版本回滚等功能,可进一步探索 Git 进阶用法。
我的矩阵
抖音:从 0 至 1
微信公众号:从 0 至 1
博客网站:www.from0to1.cn
github: https://github.com/mtnljbydd
文章标题:从混乱到规范:YOLOv8 CPU训练项目GitHub上传全流程(超详细避坑指南)
文章链接:https://www.from0to1.cn/inspiration-coding/chldgf-yolovcxlxmgscqlc-cxxbkzn-.html
本站文章均为原创,未经授权请勿用于任何商业用途
如果觉得文章对您有用,请随意打赏。
您的支持是我们继续创作的动力!
微信扫一扫
支付宝扫一扫