赞
踩
主机系统为win10系统,显卡为4070
目录
- conda env list #查看拥有的环境文件
- conda activate 虚拟环境名 #激活环境
- conda deactivate 虚拟环境名 #解除环境
-
- conda create -n your_env_name python=x.x #创建新虚拟环境
- conda remove -n your_env_name --all #删除虚拟环境
- ###安装包
- conda install 包名 #建议先进入相应的虚拟环境再进行安装,不建议全部安装在base
- pip install 包名 #进入某个虚拟环境之后也可以使用pip安装包
- conda remove 包名 #移除包名
- conda list #查看已经安装的包
- #将包更新至最新版本
- conda update 包名
- conda update -n 环境名 包名
labelme安装: https://github.com/wkentaro/labelme
labelme使用:
创建一个文件夹,在这个文件夹中创建一个文件夹(里面放images)和labels.txt;txt文件的形式如图:
打开powershell终端输入指令:
- conda activate labelme
- cd D:\others\no8_labelme1\ ##当前labelme路径
- labelme images_2 --labels labels.txt --nodata --validatelabel exact --config '{shift_auto_shape_color: -2}'
即可对image进行标注。
roboflow官网:https://app.roboflow.com/
roboflow使用需要科学上网;逐步upload、generate、export 选择yolov7 pytorch版本。
最后会生成一个zip文件,例如下图: (当然,train valid test的比例可以自己设置,一般设置82或者73开。)
里面data.yaml中的第六行label的顺序十分重要!!!十分重要!!!十分重要!!!
将上一步文件中的train和valid转入源码的data文件夹下;创建一个custom.yaml文件,内容直接复制之前的data.yaml,路径需要修改(我之前就是6个label没有直接复制,自己写,结果顺序全错了把树木识别成了水泥地)
custom.yaml文件:
- #train和val文件夹位置,
- train: D://PycharmProjects//yolov7-segmentation-main//data//train//images
- val: D://PycharmProjects//yolov7-segmentation-main//data//valid//images
- #nc为number of classes,即标记的种类的个数
- nc: 6
- #按以下格式将label的内容填入
- names: ['bushes', 'car', 'cementfloor', 'dirtroad', 'grassland', 'tree']
------------------------------------------手动分割线 数据预处理工作完成-------------------------------------------
接下来开始重头戏:Train
下载本文参考链接的源码,在anaconda中配置环境 。由于版本不适配的缘故,建议在配完环境之后卸载torch和torchvision,从pytorch官网PyTorch重新安装与自己cuda适配的torch版本 ;或者在配环境之前把requirements.txt文件中的torch和torchvision注释掉。
我的显卡适配的是当前最新cuda11.8版本(30系显卡的话cuda11.7就够了,如果gpu不适配就只能用cpu训练,速度巨慢无比)
- ##重新安装torch
- pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
按照作者要求下载权重文件yolov7-seg.pt至目录下,并在当前位置打开终端,在终端中运行:
- conda activate yolov7seg
- #根据个人需求进行参数修改,如batch和epoch等
- python segment/train.py --data data/custom.yaml --batch 8 --weights "yolov7-seg.pt" --cfg yolov7-seg.yaml --epochs 500 --name yolov7-seg --img 640 --hyp hyp.scratch-high.yaml
成功启用显卡可以看到:
如果有错误显示:AttributeError: module 'numpy' has no attribute 'int'.
`np.int` was a deprecated alias for the builtin `int`. To avoid this error in existing code, use `int` by itself. Doing this will not modify any behavior and is safe. When replacing `np.int`, you may wish to use e.g. `np.int64` or `np.int32` to specify the precision. If you wish to review your current use, check the release note link for additional information.
The aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at:https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations
那么重新安装numpy
pip install numpy==1.20.3
看到GPU_mem,说明调用显卡开始工作了:
--------------------------------------------------慢慢等着训练完成吧---------------------------------------------------
Results saved to runs\train-seg\yolov7-seg3
训练完成后生成的文件:
训练完成后,可以用自己的模型predict:
python segment/predict.py --weights "runs/train-seg/yolov7-seg3/weights/best.pt" --source "folder or video or pic"
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。