如果已经有了torch-cuda环境直接在环境下
pip install -r requirements.txt
raise ImportError("Failed to initialize: {0}".format(exc)) from exc
ImportError: Failed to initialize: Bad git executable.
The git executable must be specified in one of the following ways:
- be included in your $PATH
- be set via $GIT_PYTHON_GIT_EXECUTABLE
- explicitly set via git.refresh()
All git commands will error until this is rectified.
This initial warning can be silenced or aggravated in the future by setting the
$GIT_PYTHON_REFRESH environment variable. Use one of the following values:
- quiet|q|silence|s|none|n|0: for no warning or exception
- warn|w|warning|1: for a printed warning
- error|e|raise|r|2: for a raised exception
Example:
export GIT_PYTHON_REFRESH=quiet
Process finished with exit code 1
在导入os后加入一行,
import os
os.environ["GIT_PYTHON_REFRESH"] = "quiet"
在train脚本中,def parse_opt(known=False):方法。
根目录下yolov5-master,创建weights文件夹,如果没有的话,把预训练参数yolov5s.pt、yolov5x.pt等放入。
parser.add_argument('--weights', type=str, default=ROOT / 'weights/yolov5x.pt', help='initial weights path')
parser.add_argument('--cfg', type=str, default=ROOT / 'models/yolov5x.yaml', help='model.yaml path')
路径在yolov5-master/models下ymal文件中,设好想加载的,修改其中参数,nc你的数据中的类别数。
路径在yolov5-master/data下ymal文件中。
parser.add_argument('--data', type=str, default=ROOT / 'data/break.yaml', help='dataset.yaml path')
我的是VOC.yaml改的,nc类别数,其他为数据集路径,名字是各样本类别。
nc: 9
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
train: D:\DBSY\yolov5-master\yolov5-master\data\VOC1014_9\train\images
val: D:\DBSY\yolov5-master\yolov5-master\data\VOC1014_9\val\images
test: ..\datasets\VOCdevkit/val
names:
0: powerdirty
1: powerdirtyl
2: powerdirtys
3: lightdirty
4: lightdirtys
5: powerbreakt
6: powerbreakb
7: powerbreak
8: lightbreakx
这个参数设置为8可能报错,看自己电脑,我一般设为0和2
parser.add_argument('--workers', type=int, default=8, help='max dataloader workers (per RANK in DDP mode)')
超参数设置,这个默认就可以。
parser.add_argument('--hyp', type=str, default=ROOT / 'data/hyps/hyp.scratch-low.yaml', help='hyperparameters path')
模型训练的轮次,这个设置300-500就可以。
parser.add_argument('--epochs', type=int, default=300, help='total training epochs')
每次放入模型中几张影像,一起训练。这个参数取值受到显存限制。设置越高,模型训练的时间就会减少,同时也会影像训练的精度,不是越高越好,越低越不好。设置4、8、16都可行。
parser.add_argument('--batch-size', type=int, default=16, help='total batch size for all GPUs, -1 for autobatch')
输入图像的大小,默认640,可以设为1280。图像越大,效果越好。
parser.add_argument('--imgsz', '--img', '--img-size', type=int, default=640, help='train, val image size (pixels)')
优化器设置,这个默认是SGD,也可以混合着来。
parser.add_argument('--optimizer', type=str, choices=['SGD', 'Adam', 'AdamW'], default='SGD', help='optimizer')
我们在数据的配置文件中填了数据路径,直接把数据复制到YOLOV5\yolov5-master\datasets