欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

paddleDetection预训练模型导出,并且给paddex使用

时间:2023-05-21
paddleDetection预训练模型导出,并且给paddex使用

序言下载paddleDetection权重文件导出模型

修改model.yml 序言

最近准备用paddlex部署项目,但是踩了几天的坑发现paddleDetection中的模型并不能直接导出给paddlex使用,关键是paddleDetection使用python tools/export_model.py导出的配置文件是infer_cfg.yml,里面的内容与paddlex可以使用的model.yml有些区别,一种方法是找合适一个数据集,用paddlex中的train接口训练几轮,自动生成一个yml文件,另一种方法是自己生成一个yml文件。

下载paddleDetection权重文件

这里以ppyolov2为基础,首先进入paddleDetection仓库
https://github.com/PaddlePaddle/PaddleDetection/blob/develop/configs/ppyolo/README_cn.md

下载完长这样

导出模型

然后用导出模型工具导出,注意去config文件夹选择正确的配置文件

python tools/export_model.py -c configs/ppyolo/ppyolov2_r50vd_dcn_365e_coco.yml --output_dir=./inference_model -o weights=ppyolov2_r50vd_dcn_365e_coco.pdparams

导出后的文件长这样

修改model.yml

这里可以先用paddlex中的train接口先训练一两轮, 得到一个model.yml文件,然后再修改

Model: PPYOLOv2Transforms:- Resize: interp: CUBIC keep_ratio: false target_size: !!python/tuple - 640 - 640- Normalize: is_scale: true max_val: - 255.0 - 255.0 - 255.0 mean: - 0.485 - 0.456 - 0.406 min_val: - 0 - 0 - 0 std: - 0.229 - 0.224 - 0.225_Attributes: best_accuracy: 7.663954650946425 best_model_epoch: 1 eval_metrics: bbox_map: 7.663954650946425 fixed_input_shape: null labels: - person - bicycle - car - motorcycle - airplane - bus - train - truck - boat - traffic light - fire hydrant - stop sign - parking meter - bench - bird - cat - dog - horse - sheep - cow - elephant - bear - zebra - giraffe - backpack - umbrella - handbag - tie - suitcase - frisbee - skis - snowboard - sports ball - kite - baseball bat - baseball glove - skateboard - surfboard - tennis racket - bottle - wine glass - cup - fork - knife - spoon - bowl - banana - apple - sandwich - orange - broccoli - carrot - hot dog - pizza - donut - cake - chair - couch - potted plant - bed - dining table - toilet - tv - laptop - mouse - remote - keyboard - cell phone - microwave - oven - toaster - sink - refrigerator - book - clock - vase - scissors - teddy bear - hair drier - toothbrush model_type: detector num_classes: 80_init_params: anchor_masks: - - 6 - 7 - 8 - - 3 - 4 - 5 - - 0 - 1 - 2 anchors: - - 10 - 13 - - 16 - 30 - - 33 - 23 - - 30 - 61 - - 62 - 45 - - 59 - 119 - - 116 - 90 - - 156 - 198 - - 373 - 326 backbone: ResNet50_vd_dcn ignore_threshold: 0.7 label_smooth: false nms_iou_threshold: 0.45 nms_keep_topk: 100 nms_score_threshold: 0.01 nms_topk: -1 num_classes: 80 scale_x_y: 1.05 use_drop_block: true use_iou_aware: true use_iou_loss: true use_matrix_nms: true use_spp: truecompleted_epochs: 1status: Inferversion: 2.1.0

其中的Model改为你自己的模型,但是只能是paddlex支持的模型
labels改为你自己的类别标签
num_classes改为类别总数,注意有两处要改
status改为Infer,如果使用的pdparams这些未导出前的为normal
version版本为paddlex版本

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。