PaddleClas——训练自定义数据集的分类模型并部署在Windows端
原创
©著作权归作者所有:来自51CTO博客作者IrvingGao的原创作品,请联系作者获取转载授权,否则将追究法律责任
文章目录
- 配置环境
- 数据集准备
- 配置模型超参数
- 训练模型
- 生成可预测的模型文件
- 模型评估
- 预测
因为在做机器学习的结课大作业,在分别尝试了Keras、pytorch等框架后,因为本地训练真的巨慢,而且前两个API真的对刚接触新框架的同学不友好,同时,百度的分类模型中方便地提供了超参数的配置文件,同时提供了超大规模的分类预训练模型,可以极大地提高模型的拟合效果,所以最终采用了Paddle来做本次作业。
在AI studio端训练模型
配置环境
拉取PaddlePaddle-Classification
!git clone https://github.com/yeyupiaoling/PaddlePaddle-Classification.git
#安装环境
!pip install ujson opencv-python pillow tqdm PyYAML visualdl -i https://mirrors.aliyun.com/pypi/simple/
!pip install paddleslim==1.1.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
!pip install PaddlePaddle-Classification/utils/ppcls-0.0.3-py3-none-any.whl
数据集准备
#解压数据集
!unzip -d /home/aistudio/ data/data66734/dataset.zip
数据集只需要进行按类别放到不同的文件夹里即可。(需要自行看一下creat_list.py文件中对于数据集文件格式的要求)
#生成txt
!python PaddlePaddle-Classification/create_list.py
配置模型超参数
#下载预训练模型
!wget https://paddle-imagenet-models-name.bj.bcebos.com/MobileNetV1_pretrained.tar
!tar -xf /home/aistudio/MobileNetV1_pretrained.tar
- 通过修改yaml文件修改模型具体的超参数
- 通过更改yaml文件更换模型进行训练测试
# 每次换模型训练前必须删除logs/文件夹,否则使用visualDL会出现前一次训练结果依然存在的情况
!CUDA_VISIBLE_DEVICES=0
!rm -rf logs/
训练模型
!python PaddlePaddle-Classification/train.py --config PaddlePaddle-Classification/configs/MobileNetV1.yaml
生成可预测的模型文件
!python PaddlePaddle-Classification/export_model.py
模型评估
!python PaddlePaddle-Classification/eval.py

预测
!python PaddlePaddle-Classification/infer.py --image_path="dataset/images/metal/metal102.jpg"
Windows端部署
环境准备
拉取PaddlePaddle-Classification
!git clone https://github.com/yeyupiaoling/PaddlePaddle-Classification.git
#安装环境
!pip install ujson opencv-python pillow tqdm PyYAML visualdl -i https://mirrors.aliyun.com/pypi/simple/
!pip install paddlelite
!pip install paddleslim==1.1.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
!pip install PaddlePaddle-Classification/utils/ppcls-0.0.3-py3-none-any.whl
缺什么pip安装一下就行。
预测
直接运行infer.py
文件即可,可以对infer.py自行进行魔改,但是输入图像一定要经过归一化处理!!! 否则预测结果你就会吃到没有归一化的苦。
如果要将infer.py文件单独放在路径下,一定记得将utils文件夹一并带走,和infer.py放在一起,这样才能正常运行预测程序。

预测效果
