DarkNet--分类 ./darknet classifier train/valid/test

本文详细解析了在训练过程中遇到'toomanyfortoofewlabels'错误的原因,通常是因为数据集中标签不平衡或者标签重复导致。文章提供了检查labels.txt文件和图片路径的正确方法,帮助读者避免这一常见问题。

注意在labels.txt文件中,比如 类别 是 BV和NOBV,因为'BV'的是重复的,所以在训练过程中会提示

'too many for too few labels',在图片的路径中,也不要写。

 

將代碼改為在本機訓練yolov !git clone https://github.com/AlexeyAB/darknet # **Instructions**: ### 1 - Upload this notebook on [Google Colab](https://colab.research.google.com/) (this notebook need to run on Google Colab). ### 2 - Open the notebook on Google Colab. ### 3 - Change the Google Colab runtime to "GPU" by navigating to "Runtime" > "Change runtime type" ### 4 - Run all cells to start training your model. ### 5 - After the last command finish its execution, copy the file ```yolov4-tiny/training/yolov4-tiny-custom_last.weights``` from your google drive to the cloned project in the same folder as the 4_yolo_opencv_detector notebook. %cd .. from google.colab import drive drive.mount('/content/gdrive') !ln -s /content/gdrive/My\ Drive/ /mydrive ls /mydrive/yolov4-tiny #%% %cd /content/darknet/ !sed -i 's/OPENCV=0/OPENCV=1/' Makefile !sed -i 's/GPU=0/GPU=1/' Makefile !sed -i 's/CUDNN=0/CUDNN=1/' Makefile !sed -i 's/CUDNN_HALF=0/CUDNN_HALF=1/' Makefile !sed -i 's/LIBSO=0/LIBSO=1/' Makefile #%% !make #%% %cd data/ !find -maxdepth 1 -type f -exec rm -rf {} \; %cd .. %rm -rf cfg/ %mkdir cfg #%% !cp /mydrive/yolov4-tiny/obj.zip ../ !unzip ../obj.zip -d data/ !cp /mydrive/yolov4-tiny/yolov4-tiny-custom.cfg ./cfg !cp /mydrive/yolov4-tiny/obj.names ./data !cp /mydrive/yolov4-tiny/obj.data ./data !cp /mydrive/yolov4-tiny/process.py ./ !cp /mydrive/yolov4-tiny/yolov4-tiny.conv.29 ./ #%% !python process.py #%% !ls data/ #%% !./darknet detector train data/obj.data cfg/yolov4-tiny-custom.cfg yolov4-tiny.conv.29 -dont_show
最新发布
11-11
<think>我们被要求将原本在Google Colab上运行的YOLOv4-tiny训练代码改为在本机运行。 原代码主要步骤包括: 1. 克隆darknet仓库 2. 挂载Google Drive(本机不需要) 3. 修改Makefile配置(需要根据本机环境调整) 4. 编译darknet 5. 准备数据集和配置文件(需要从本地路径获取,而不是Google Drive) 6. 运行训练命令 本机训练步骤调整: 1. 在本机上克隆darknet仓库:使用git命令(同原代码,但不需要用!,因为本机在终端运行) 2. 不需要挂载Google Drive,而是直接使用本机文件系统。 3. 修改Makefile:根据本机是否有GPU、OpenCV等调整。注意:本机需要预先安装好CUDA、cuDNN、OpenCV等依赖。 4. 编译:在darknet目录下执行make 5. 准备数据:将数据集和配置文件(如obj.zip, yolov4-tiny-custom.cfg, obj.names, obj.data, process.py, yolov4-tiny.conv.29)放在本机合适的位置,并解压、复制到darknet的相应目录。 6. 运行训练命令。 我们假设用户已经在本机安装了必要的驱动和依赖(如CUDA、cuDNN、OpenCV等),并且有NVIDIA GPU。 修改后的步骤(在本地终端或脚本中执行): 注意:以下命令假设在类Unix系统(如Linux)下运行。如果是Windows,部分命令需要调整(如使用反斜杠、PowerShell命令等)。 步骤分解: 1. 克隆darknet: git clone https://github.com/AlexeyAB/darknet cd darknet 2. 修改Makefile:根据本机环境设置。例如,如果有GPU、OpenCV、cuDNN,则设置: OPENCV=1 GPU=1 CUDNN=1 CUDNN_HALF=1 LIBSO=1 可以使用sed命令修改,也可以手动修改。 3. 编译: make 4. 准备数据: 将obj.zip复制到darknet目录的上一层(或其他位置),然后解压到darknet/data目录(也可直接放在darknet/data下)。 将配置文件(yolov4-tiny-custom.cfg, obj.names, obj.data, process.py, yolov4-tiny.conv.29)复制到darknet的相应目录。 具体操作(假设这些文件都在一个本地目录中,例如~/yolo_data/): cp ~/yolo_data/obj.zip ./ unzip obj.zip -d data/ cp ~/yolo_data/yolov4-tiny-custom.cfg ./cfg cp ~/yolo_data/obj.names ./data cp ~/yolo_data/obj.data ./data cp ~/yolo_data/process.py ./ cp ~/yolo_data/yolov4-tiny.conv.29 ./ 5. 运行process.py(如果需要预处理数据): python process.py # 注意:这个脚本可能是用户自定义的,确保其功能正确 6. 开始训练: ./darknet detector train data/obj.data cfg/yolov4-tiny-custom.cfg yolov4-tiny.conv.29 -dont_show 注意:本机训练可能需要根据实际情况调整路径和权限。 由于原代码中使用了Google Colab特定的命令(如%cd, !, %rm等)和Google Drive挂载,我们将其全部改为本机终端命令。 如果用户使用Windows,请注意: - 使用git bash或者WSL来执行这些命令,或者转换为Windows命令。 - 编译darknet需要安装MinGW或者使用VS。 我们提供适用于Linux/macOS的本机训练步骤。 下面我们写出修改后的代码(作为终端命令序列): </think>要在本机训练 YOLOv4-tiny 模型而非 Google Colab,需要对代码进行以下关键修改: ### 本机训练修改要点 1. **移除 Colab 依赖项** - 删除所有 `!` 开头的 Colab 魔法命令 - 去掉 Google Drive 挂载相关代码 - 移除 `%cd` 等 IPython 专属命令 2. **路径本地化** - 所有路径改为本机绝对路径(如 `/home/user/yolo_data`) - 确保数据集和配置文件存放于本机目录 3. **Makefile 预配置** - 手动修改 darknet 的 Makefile: ```makefile OPENCV=1 # 需提前安装 OpenCV GPU=1 # 需安装 CUDA/cuDNN CUDNN=1 CUDNN_HALF=1 LIBSO=1 ``` ### 修改后的本机训练代码 ```bash # 克隆 darknet 仓库 git clone https://github.com/AlexeyAB/darknet cd darknet # 1. 手动修改 Makefile(如上所示配置) # 2. 编译 darknet make # 准备数据目录 mkdir -p data cfg # 复制本机数据(示例路径 /path/to/your/data) cp /path/to/your/data/obj.zip ./ unzip obj.zip -d data/ cp /path/to/your/data/yolov4-tiny-custom.cfg ./cfg cp /path/to/your/data/obj.names ./data cp /path/to/your/data/obj.data ./data cp /path/to/your/data/process.py ./ cp /path/to/your/data/yolov4-tiny.conv.29 ./ # 运行预处理脚本(如果有) python process.py # 开始训练 ./darknet detector train data/obj.data cfg/yolov4-tiny-custom.cfg yolov4-tiny.conv.29 -dont_show ``` ### 本机训练前提条件 1. **硬件要求**: - NVIDIA GPU(推荐 ≥8GB 显存) - 足够的内存(建议 ≥16GB RAM) 2. **软件依赖**: ```bash # Ubuntu 示例 sudo apt install build-essential git libopencv-dev # 安装 CUDA 和 cuDNN(需匹配 GPU 驱动版本) ``` 3. **数据准备**: - 数据集需预先转换为 YOLO 格式 - 配置文件(`.cfg`, `.data`, `.names`)需本地化
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值