---
# System prepended metadata

title: 1. Train Custom Data
tags: [yolov5 Doc]

---

###### tags: `yolov5 Doc`
# 1. Train Custom Data

Reference:
- [yolov5代碼解讀](https://zhuanlan.zhihu.com/p/416985509)
- [yolov5-Train Custom Data](https://docs.ultralytics.com/tutorials/train-custom-datasets/)

---

![](https://i.imgur.com/jJtdZvX.png)


訓練參數說明
`python train.py `

`--img 640`    : 圖片大小
`--batch 16`   : batch 大小 (越大越吃 gpu mem)
`--epochs 3`   : epochs 數量
`--data coco128.yaml`  : 資料集資訊 (.yaml)
`--weights yolov5s.pt` : 初始權重 (官方建議用)
`--cfg yolov5s.yaml`   : model 資料
`--workers 0`   : worker 數量
`--patience 100`: 設定 Early Stopping 
`--evolve 100`  : 100 次 GA 自動調整參數=>參考 [2. 官方訓練建議](/BDOlE7kETHW5KSsT766vkg)
`--hyp data/hyps/hyp.scratch-high.yaml`
`--cache ram` : 緩存資料到 ram/disk (如果資源夠) 可以加快速度
`--rect` : 訓練矩形，對圖片填充灰邊(如448\*448->448\*w)
`--notest` : 只訓練final epoch(好像是影響結果的圖片?)
`--single-cls` : 數據集是否只有一個類別，默認為False
`multi-scale` : 是否進行多尺度訓練，默認為False(好像是改變圖片大小)
`noautoanchor` : 不會自動調整anchor，默認為False


```
python train.py --epochs 300 --batch-size 32 --img 1080 --data drone.yaml --cfg yolov5m.yaml --weights yolov5m.pt --hyp data/hyps/hyp.scratch-low.yaml --workers 0 --device 0,1
```



