paddlle训练脚本
1. paddleseg 安 装
下载paddleseg-release-2.8
pip install paddlepaddle-gpu==2.5.2 pip show paddlepaddle-gpu pip install paddleseg pip install -r requirements.txt python tools/predict.py --config configs/quick_start/pp_liteseg_optic_disc_512x512_1k.yml --model_path https://paddleseg.bj.bcebos.com/dygraph/optic_disc/pp_liteseg_optic_disc_512x512_1k/model.pdparams --image_path docs/images/optic_test_image.jpg --save_dir output/result成功执行,并再output目录得到结果则完成安装
2.数据集
python json_convert.py D:\tempimage格式:
dataset
-----images
----1.jpg...(24bits)
-----labels
----1.png...(8bits)
数据切分
python tools/split_dataset_list.py <dataset_root> images annotations --split 0.6 0.2 0.2 --format jpg png
注意:
执行完成后的labels.txt需自行编辑类名
3.训练文件配置
配置文件均位于configs中
4.训练
准备好配置文件后,在PaddleSeg根目录下执行如下命令,使用train.py脚本进行单卡模型训练
export CUDA_VISIBLE_DEVICES=0 # 设置1张可用的卡
**windows下请执行以下命令**
**set CUDA_VISIBLE_DEVICES=0** python train.py --config configs/segformer/segformer_b1_cityscapes_1024x1024_160k-1.yml --resume_model output/iter_3000 --save_interval 500 --do_eval --use_vdl --save_dir output5. 模 型 转 换
首先用paddle工具中的export脚本导出模型,注意导出的类型。--output_op 可以支持argmax,softmax和none3中模式。
利用onnxruntime转为.onnx格式,转换后的onnx用onnxsim优化精简一些不需要的节点和冗余计算。
需要安装onnxruntime库
# 安装cpu版本 pip install onnxruntime # 安装gpu版本 pip install onnxruntime-gpu paddle2onnx --model_dir output/infer_model/ --model_filename model.pdmodel --params_filename model.pdiparams --save_file seg.onnx --enable_dev_version False --opset_version 11 onnxsim seg.onnx seg_sim.onnx python export.py --config configs/segnext/segnext_mscan_b_cityscapes_1024x1024_160k-1.yml --model_path best_model/model.pdparams --save_dir output/infer_model --input_shape 1 3 512 512 --output_op none
5.2 onnx转trt
trtexec.exe --onnx=segformer.onnx --saveEngine=segformer.engine --fp16 --noTF326.测试
python predict.py --config configs/segformer/segformer_b1_cityscapes_1024x1024_160k-1.yml --model_path output/best_model/model.pdparams --image_path D:/datasets/D0003/JPEGImages --save_dir output/result
7.打包
pip install pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple
生成.spec文件
pyi-makespec train.py
修改.spec文件
a = Analysis(
['inference_realbasicvsr.py',
"D:\\..\\models\\builde.py",#这里写项目里所有用到的.py文件的绝对路径
"D:\\..\\configs\\xx.py"
],
pathex=['D:\\documents\\work\\RealBasicVSR-master'],#这里写项目所在位置的绝对路径
binaries=[],#这里是二进制文件,我试过把.pth写在这里,会报错
datas=[('D:\\documents\\work\\xx.py','configs'),
("D:\\documents\\work\\xx.pth",".weights"),
("D:\\documents\\work\\xx2.pth",".weights" )],#这里写所有的资源文件,格式为('资源文件的绝对路径\\xx.pth','生成位置')
hiddenimports=['mmcv','mmcv._ext'],#需要引入的库,可以在打包报错后一个个引入
hookspath=[],
hooksconfig={},
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False,
)
打包
pyinstaller train.spec
