linux服务器yolov5训练
时间: 2025-01-03 21:40:04 浏览: 9
### 配置环境
为了在Linux服务器上顺利进行YOLOv5模型的训练,需先安装必要的依赖库并设置好Python虚拟环境。通常情况下,推荐使用Anaconda来管理这些软件包及其版本,因为这可以简化依赖关系处理过程[^1]。
```bash
# 安装Miniconda或Anaconda
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
source ~/.bashrc
```
创建一个新的Conda环境用于YOLOv5项目:
```bash
# 创建新的Conda环境
conda create --name yolov5 python=3.9 -y
conda activate yolov5
```
接着,在此环境中安装PyTorch和其他所需的Python库:
```bash
# 安装PyTorch及相关组件
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117
pip install -r requirements.txt # 假设requirements.txt文件位于当前目录下
```
### 准备数据集与配置文件
下载官方提供的预训练权重以及相应的配置文件,并准备好要使用的自定义数据集。对于COCO格式的数据集来说,`data.yaml` 文件应该被正确配置以指向图像路径和类别标签等信息[^2]。
```yaml
train: ./datasets/train/
val: ./datasets/valid/
nc: 80
names: ['person', 'bicycle', ... ] # 类别名称列表
```
### 修改源码适应多GPU训练
如果计划利用多个GPU加速训练,则需要调整部分代码以便能够识别所有可用的GPU资源。可以通过修改 `device` 参数指定具体的GPU编号来进行此项操作。
```python
from pathlib import Path
import yaml
from models.experimental import attempt_load
from utils.general import check_img_size, non_max_suppression, scale_coords
from utils.torch_utils import select_device, time_synchronized
from utils.datasets import letterbox, LoadImages
from utils.plots import plot_one_box
import torch.backends.cudnn as cudnn
import torch.distributed as dist
...
if __name__ == '__main__':
...
device = select_device('cuda:0' if torch.cuda.is_available() else 'cpu')
# 如果有超过一块GPU则开启分布式训练模式
if torch.cuda.device_count() > 1:
model = torch.nn.DataParallel(model)
...
```
### 开始训练
最后一步就是启动实际的训练流程了。通过命令行传递参数给脚本执行特定的任务,比如指明所用到的数据集位置、迭代次数等等。
```bash
python train.py \
--img 640 \ # 输入图片尺寸
--batch-size 16 \ # 批次大小
--epochs 100 \ # 训练轮数
--data coco128.yaml \ # 数据集配置文件路径
--weights yolov5s.pt # 初始化权重文件名
```
阅读全文