在ubuntu18.04下训练yolov3模型(GPU)

本文详细介绍了在Ubuntu18.04上配置GPU环境,包括安装NVIDIA驱动、CUDA 9.0及cudnn,以及安装和配置OpenCV和darknet的过程,为训练YOLOv3模型提供必要的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在ubuntu18.04下训练yolov3模型(GPU)

1.安装NVIDIA显卡驱动

安装显卡驱动有添加ppa源和下载官方安装包的方法。

这里介绍一个相对简单点的方法为ubuntu 18.04安装显卡驱动:

(1)查看gpu和推荐的驱动版本:

$ ubuntu-drivers devices

img

(2)然后进行自动安装

$ sudo ubuntu-drivers autoinstall

在设置里面点击详细信息,如果显示出显卡信息就说明显卡驱动安装成功了。

img

2.安装cuda并配置cudnn

(1)对GCC降级

Ubuntu 18.04预装GCC的版本为7.3,而cuda编译需要更低的版本,这里对gcc进行手动降级至4.8版本。

对gcc降级:

sudo apt-get install gcc-4.8

对g++降级

sudo apt-get install g++-4.8

然后进入到/usr/bin目录下输入:ls -l gcc*

cd /usr/bin



ls -l gcc* 

显示结果如下:

 lrwxrwxrwx 1 root root 7th 3月  20 11:38 /usr/bin/gcc -> gcc-7.3  

表示gcc链接到gcc-7.3, 需要将它改为链接到gcc-4.8,方法如下:

sudo mv gcc gcc.bak #备份



sudo ln -s gcc-4.8 gcc #重新链接

同理, 将g++链接到g++4.8:

sudo mv g++ g++.bak



sudo ln -s g++-4.8 g++

在/usr/bin目录下查看gcc和g++版本

<think>好的,我现在需要帮助用户解决在Ubuntu 18.04上使用YOLOv3训练自定义数据集的问题。首先,我要回顾用户提供的引用内容,确保回答准确。用户提到了引用[1]和引用[2],其中引用[1]详细介绍了在Ubuntu 18.04上用CPU训练YOLOv3的步骤,包括下载编译darknet、修改配置文件、训练和测试过程。引用[2]提到了YOLOv4的训练命令,但用户问的是YOLOv3,可能需要调整相关参数。 首先,我需要整理出训练YOLOv3的基本步骤。根据引用[1],步骤包括下载编译darknet、准备数据集、修改配置文件、训练模型。用户可能需要从数据准备开始,包括标注数据,生成对应的.txt文件和路径配置。然后,修改配置文件如obj.data、yolov3.cfg,确保类别数正确,调整参数如batch、subdivisions。接下来是下载预训练权重,执行训练命令,可能还需要训练过程的可视化,比如使用-map选项,这在引用[2]中提到过,但需要确认是否适用于YOLOv3。 需要注意的是,用户提到的是Ubuntu 18.04,所以环境配置方面可能需要安装CUDA、OpenCV等依赖,但引用[1]中用户使用CPU训练,但通常训练YOLOv3需要GPU加速。不过用户的问题可能只是针对方法,不涉及硬件细节。但需要指出如果使用GPU,可能需要安装CUDA和cuDNN,而如果使用CPU,训练速度会很慢,可能建议使用yolov3-tiny,如引用[1]提到的。 另外,数据集准备的步骤可能包括将图片和标注文件组织成train和val目录,创建train.txt和val.txt文件,指定路径。然后修改obj.data文件中的类别数目和路径。修改网络配置yolov3.cfg,将每个[yolo]层前的卷积层的filters数目调整为(classes + 5)*3,classes是类别数,并调整每个[yolo]层的classes参数。 训练命令方面,引用[1]提到使用darknet detector train命令,而引用[2]中的YOLOv4命令可能类似,但预训练权重不同。YOLOv3通常使用darknet53.conv.74作为预训练权重,需要下载。训练时可能需要指定这个权重文件。 可能还需要监控训练过程,比如生成图表,使用-map选项来显示mAP曲线,但需要确认YOLOv3是否支持这个选项,或者是否需要额外配置。 此外,用户可能需要测试训练好的模型,用detector test命令,并调整阈值等参数。最后,部署到其他平台如树莓派时,可能需要转换模型格式或使用更轻量的模型yolov3-tiny,但用户的问题主要集中在训练步骤,这部分可能不需要深入。 总结步骤:1. 环境准备(安装darknet,依赖项);2. 数据集准备与配置;3. 修改配置文件;4. 下载预训练权重;5. 执行训练命令;6. 测试模型。需要确保每个步骤的命令正确,路径正确,特别是用户可能遇到的常见问题,比如路径错误、类别数未修改导致的问题,或者显存不足时调整batch大小等。 可能还需要提到如果训练过程中出现内存不足的情况,可以减小batch size或增加subdivisions,这在cfg文件中调整。此外,训练过程中生成的权重文件备份,以及如何恢复训练,如果中断的话。 最后,根据用户提供的引用,确保在回答中正确标注引用来源,例如编译darknet的部分引用[^1],训练命令参考了引用[^2]中的结构,但根据YOLOv3进行调整。</think>### 在 Ubuntu 18.04 上使用 YOLOv3 训练自定义数据集的步骤 #### 1. 环境准备 - **下载并编译 Darknet** 从官方仓库克隆代码并编译(需提前安装 `git` 和 `make`): ```bash git clone https://github.com/pjreddie/darknet cd darknet make ``` 若需 GPU 支持,需修改 `Makefile` 中的 `GPU=1` 并安装 CUDA 和 cuDNN。 #### 2. 数据集准备 - **标注数据** 使用工具(如 LabelImg)生成标注文件(每张图片对应一个 `.txt` 文件,格式为 `class_id x_center y_center width height`)。 - **组织文件结构** 创建以下目录: ``` custom_data/ ├── train/ │ ├── images/ │ └── labels/ ├── valid/ │ ├── images/ │ └── labels/ └── obj.names # 类别名称列表 ``` - **生成路径文件** 创建 `train.txt` 和 `valid.txt`,分别包含训练集和验证集图片的绝对路径。 #### 3. 配置文件修改 - **创建 `obj.data`** 内容示例: ```text classes = 2 # 类别数 train = /path/to/train.txt valid = /path/to/valid.txt names = obj.names backup = backup/ # 权重保存路径 ``` - **修改 YOLOv3 网络配置** 复制 `cfg/yolov3.cfg` 并调整以下参数: - `batch=64`(根据显存调整) - `subdivisions=16`(显存不足时增大此值) - 每个 `[yolo]` 层前的 `[convolutional]` 层中 `filters=(classes + 5) * 3`(例如类别数为 2,则 `filters=21`) - 每个 `[yolo]` 层中的 `classes=2`。 #### 4. 下载预训练权重 使用以下命令下载预训练权重: ```bash wget https://pjreddie.com/media/files/darknet53.conv.74 ``` #### 5. 开始训练 执行训练命令: ```bash ./darknet detector train obj.data yolov3-custom.cfg darknet53.conv.74 -map ``` - `-map` 选项会实时计算 mAP(需编译时启用 OpenCV)[^2]。 - 训练日志保存在 `backup/` 目录,权重每 1000 迭代保存一次。 #### 6. 测试模型 使用训练好的权重进行推理: ```bash ./darknet detector test obj.data yolov3-custom.cfg backup/yolov3-custom_final.weights test_image.jpg ``` #### 关键优化建议 - **轻量化模型**:若部署到资源受限设备(如树莓派),改用 `yolov3-tiny` 并调整对应配置文件[^1]。 - **训练监控**:使用 `-dont_show` 配合 `mjpeg` 流可在远程服务器实时查看训练状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值