佛山市做网站的公司,贵池网站建设,网站怎么做百度才会收录,如何开发电商网站文章目录 一、演示多分类效果二、PaddleClas介绍三、代码获取四、数据集获取五、环境搭建六、数据格式分析七、模型训练7.1 模型恢复训练7.2 多卡训练7.3 其他训练指标 八、模型预测九、模型评估十、PaddleClas相关博客 一、演示多分类效果 二、PaddleClas介绍
PaddleClas主要… 文章目录 一、演示多分类效果二、PaddleClas介绍三、代码获取四、数据集获取五、环境搭建六、数据格式分析七、模型训练7.1 模型恢复训练7.2 多卡训练7.3 其他训练指标 八、模型预测九、模型评估十、PaddleClas相关博客 一、演示多分类效果 二、PaddleClas介绍
PaddleClas主要构件
PP-ShiTu 图像识别包含图像检测与图像搜索PULC超轻量图像分类
PaddleClas是飞桨PaddlePaddle深度学习平台提供的一个开源项目用于图像分类任务。它基于飞桨框架开发致力于为用户提供一个简单、高效、灵活的图像分类工具。PaddleClas集成了许多常用的图像分类模型和数据增强方法使得用户可以轻松地进行图像分类任务的训练和推理。
PaddleClas提供了丰富的图像分类模型包括经典的卷积神经网络CNN架构如ResNet、VGG和MobileNet等以及最新的一些优化模型如GhostNet、EfficientNet和RegNet等。用户可以选择适合自己任务需求的模型进行训练和推理。
此外PaddleClas还提供了一些常用的数据增强方法如随机裁剪、随机旋转和随机亮度调整等可以有效提升模型的泛化能力和鲁棒性。
总之飞桨图像识别套件PaddleClas是飞桨为工业界和学术界所准备的一个图像识别和图像分类任务的工具集助力使用者训练出更好的视觉模型和应用落地。 三、代码获取
https://gitee.com/paddlepaddle/PaddleClas PaddleClas 主要代码和目录结构如下
benchmark: 文件夹下存放了一些 shell 脚本主要是为了测试 PaddleClas 中不同模型的速度指标如单卡训练速度指标、多卡训练速度指标等。dataset文件夹下存放数据集和用于处理数据集的脚本。脚本负责将数据集处理为适合 Dataloader 处理的格式。deploy部署核心代码文件夹存放的是部署工具支持 python/cpp inference、Hub Serveing、Paddle Lite、Slim 离线量化等多种部署方式。ppcls训练核心代码文件夹下存放 PaddleClas 框架主体。配置文件、模型训练、评估、预测、动转静导出等具体代码实现均在这里。tools训练、评估、预测、模型动转静导出的入口函数和脚本均在该文件下。requirements.txt 文件用于安装 PaddleClas 的依赖项。使用 pip 进行升级安装使用。testsPaddleClas 模型从训练到预测的全链路测试验证各功能是否能够正常使用。
四、数据集获取
链接https://pan.baidu.com/s/1_GuRwxUmf42rVlmCL8ErlQ?pwd8vet 提取码8vet
五、环境搭建
cuda、cudnn可根据这篇博客配置我的是cuda10.1。python版本是3.7.11。安装paddle-gpupython -m pip install paddlepaddle-gpu2.3.2.post101 -f https://www.paddlepaddle.org.cn/whl/windows/mkl/avx/stable.html官网链接 如果是CPU则通过这个命令安装python -m pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple 剩下的环境就缺啥安装啥即可。
六、数据格式分析 七、模型训练
修改config文件对应属性 –config 配置文件路径–override 使用其他的参数 修改yaml文件对应位置属性 class_numepochsdeviceimage_roottrain和evalcls_label_pathtrain和eval
python tools/train.py
-c ppcls/configs/quick_start/professional/MobileNetV1_multilabel.yaml
-o Arch.pretrainedTrue # 是否使用预训练模型模型训练完之后会在主目录生成模型。
7.1 模型恢复训练
python tools/train.py \-c ppcls/configs/quick_start/professional/MobileNetV1_multilabel.yaml -o Global.checkpoints./output/*********/epoch_5 \-o Global.devicegpu其中配置文件不需要做任何修改只需要在继续训练时设置 Global.checkpoints 参数即可表示加载的断点权重文件路径使用该参数会同时加载保存的断点权重和学习率、优化器等信息。
可配置的部分评估参数说明如下
Arch.name模型名称Global.pretrained_model待评估的模型的预训练模型文件路径不同于Global.Backbone.pretrained此处的预训练模型是整个模型的权重而Global.Backbone.pretrained只是Backbone部分的权重。当需要做模型评估时需要加载整个模型的权重。Metric.Eval待评估的指标默认评估recall1、recall5、mAP。当你不准备评测某一项指标时可以将对应的试标从配置文件中删除当你想增加某一项评测指标时也可以参考Metric部分在配置文件Metric.Eval中添加相关的指标。
注意
在加载待评估模型时需要指定模型文件的路径但无需包含文件后缀名PaddleClas 会自动补齐 .pdparams 的后缀。Metric learning 任务一般不评测 Topk Acc。
7.2 多卡训练
# PaddleClas 通过 launch 方式启动多卡多进程训练
export CUDA_VISIBLE_DEVICES0,1,2,3
python -m paddle.distributed.launch \--gpus0,1,2,3 \tools/train.py \-c ppcls/configs/quick_start/professional/MobileNetV1_multilabel.yaml7.3 其他训练指标 Metric可以修改为下面属性。
Metric:Train:- TopkAcc:topk: [1, 5]Eval:- TopkAcc:topk: [1, 5]八、模型预测
-c配置文件路径 -o Infer.infer_imgs预测图片路径 -o Global.pretrained_model训练输出模型路径 -o save_txt是否在文件夹下将图片的预测结果保存到文本文件中 由于默认 class_id_map_file 是 ImageNet 数据集的映射文件所以此处需要置 None。
python tools/infer.py -c ppcls/configs/quick_start/professional/MobileNetV1_multilabel.yaml -o Infer.infer_imgsdataset/1.jpg -o Global.pretrained_modeloutput/MobileNetV1/best_model -o Infer.PostProcess.class_id_map_fileppcls/utils/PULC_label_list/label_list.txt九、模型评估
python tools/eval.py -c ppcls/configs/quick_start/professional/MobileNetV1_multilabel.yaml-o Global.devicegpu-o DataLoader.Eval.dataset.image_rootE:\dataset\classify\NUS-SCENE-dataset/images/-o DataLoader.Eval.dataset.cls_label_pathE:\dataset\classify\NUS-SCENE-dataset/multilabel_test_list.txt-o Global.pretrained_modeloutput/MobileNetV1/best_model-o Arch.class_num33-o Global.use_visualdlTrue # 过程可视化
python tools/eval.py -c ppcls/configs/quick_start/professional/MobileNetV1_multilabel.yaml -o Global.devicegpu -o DataLoader.Eval.dataset.image_rootE:\dataset\classify\NUS-SCENE-dataset/images/ -o DataLoader.Eval.dataset.cls_label_pathE:\dataset\classify\NUS-SCENE-dataset/multilabel_test_list.txt -o Global.pretrained_modeloutput/MobileNetV1/best_model -o Arch.class_num33十、PaddleClas相关博客
PaddleClas自定义backbone