专栏首页小鹏的专栏[pytorch] PyTorch图像分类框架(支持多种主流分类模型)

[pytorch] PyTorch图像分类框架(支持多种主流分类模型)

Git Repo:https://github.com/MachineLP/PyTorch_image_classifier

CV 训练/测试/部署分类任务

| *** | 具体 | 样例 |

| :-----------------: | :---------? :---------?

| 模型方面 | (efficientnet/resnest/seresnext等) | 1 |

| 数据增强 | (旋转/镜像/对比度等、mixup/cutmix) | 2 |

| 损失函数 | (交叉熵/focal_loss等) | 3|

| 模型部署 | (flask/grpc/BentoML等) | [4] (https://github.com/MachineLP/PyTorch_image_classifier/tree/master/serving)|

| onnx/trt | () | 5 |

支持的全部模型:

RESNEST_LIST = [“resnest50”, “resnest101”, “resnest200”, “resnest269”]

SERESNEXT_LIST = [‘seresnext101’]

GEFFNET_LIST = [‘GenEfficientNet’, ‘mnasnet_050’, ‘mnasnet_075’, ‘mnasnet_100’, ‘mnasnet_b1’, ‘mnasnet_140’, ‘semnasnet_050’, ‘semnasnet_075’, ‘semnasnet_100’, ‘mnasnet_a1’, ‘semnasnet_140’, ‘mnasnet_small’,‘mobilenetv2_100’, ‘mobilenetv2_140’, ‘mobilenetv2_110d’, ‘mobilenetv2_120d’, ‘fbnetc_100’, ‘spnasnet_100’, ‘efficientnet_b0’, ‘efficientnet_b1’, ‘efficientnet_b2’, ‘efficientnet_b3’, ‘efficientnet_b4’, ‘efficientnet_b5’, ‘efficientnet_b6’, ‘efficientnet_b7’, ‘efficientnet_b8’, ‘efficientnet_l2’, ‘efficientnet_es’, ‘efficientnet_em’, ‘efficientnet_el’, ‘efficientnet_cc_b0_4e’, ‘efficientnet_cc_b0_8e’, ‘efficientnet_cc_b1_8e’, ‘efficientnet_lite0’, ‘efficientnet_lite1’, ‘efficientnet_lite2’, ‘efficientnet_lite3’, ‘efficientnet_lite4’, ‘tf_efficientnet_b0’, ‘tf_efficientnet_b1’, ‘tf_efficientnet_b2’, ‘tf_efficientnet_b3’, ‘tf_efficientnet_b4’, ‘tf_efficientnet_b5’, ‘tf_efficientnet_b6’, ‘tf_efficientnet_b7’, ‘tf_efficientnet_b8’, ‘tf_efficientnet_b0_ap’, ‘tf_efficientnet_b1_ap’, ‘tf_efficientnet_b2_ap’, ‘tf_efficientnet_b3_ap’, ‘tf_efficientnet_b4_ap’, ‘tf_efficientnet_b5_ap’, ‘tf_efficientnet_b6_ap’, ‘tf_efficientnet_b7_ap’, ‘tf_efficientnet_b8_ap’, ‘tf_efficientnet_b0_ns’, ‘tf_efficientnet_b1_ns’, ‘tf_efficientnet_b2_ns’, ‘tf_efficientnet_b3_ns’, ‘tf_efficientnet_b4_ns’, ‘tf_efficientnet_b5_ns’, ‘tf_efficientnet_b6_ns’, ‘tf_efficientnet_b7_ns’, ‘tf_efficientnet_l2_ns’, ‘tf_efficientnet_l2_ns_475’, ‘tf_efficientnet_es’, ‘tf_efficientnet_em’, ‘tf_efficientnet_el’, ‘tf_efficientnet_cc_b0_4e’, ‘tf_efficientnet_cc_b0_8e’, ‘tf_efficientnet_cc_b1_8e’, ‘tf_efficientnet_lite0’, ‘tf_efficientnet_lite1’, ‘tf_efficientnet_lite2’, ‘tf_efficientnet_lite3’, ‘tf_efficientnet_lite4’, ‘mixnet_s’, ‘mixnet_m’, ‘mixnet_l’, ‘mixnet_xl’, ‘tf_mixnet_s’, ‘tf_mixnet_m’, ‘tf_mixnet_l’]

训练/测试/部署流程:

0、转为训练需要的数据格式

git clone https://github.com/MachineLP/PyTorch_image_classifier

cd PyTorch_image_classifier

python tools/data_preprocess.py --data_dir "./data/data.csv" --n_splits 5 --output_dir "./data/train.csv" --random_state 2020

1、修改配置文件,选择需要的模型 以及 模型参数:vim conf/test.yaml

cp conf/test.yaml conf/effb3_ns.yaml

vim conf/effb3_ns.yaml

2、训练模型: (根据需求选取合适的模型)

python train.py --config_path "conf/effb3_ns.yaml"

3、测试

python test.py --config_path "conf/effb3_ns.yaml" --n_splits 5

4、infer

python infer.py --config_path "conf/effb3_ns.yaml" --img_path "./data/img/0male/0(2).jpg" --fold "0"

pre>>>>> [1]

python infer.py --config_path "conf/effb3_ns.yaml" --img_path "./data/img/1female/1(5).jpg" --fold "0"

pre>>>>> [0]

5、模型转换 (待调试)

转onnx:python tools/pytorch_to_onnx.py --config_path "conf/effb3_ns.yaml" --img_path "./data/img/0male/0(2).jpg" --batch_size 4 --fold 0 --save_path "lp.onnx"

转tensorrt:python tools/onnx_to_tensorrt.py

6、模型部署

serving

ref

(1)https://github.com/haqishen/SIIM-ISIC-Melanoma-Classification-1st-Place-Solution

(2)https://github.com/BADBADBADBOY/pytorchOCR

(3)https://github.com/MachineLP/QDServing

(4)https://github.com/bentoml/BentoML

(5)mixup-cutmix:https://blog.csdn.net/u014365862/article/details/104216086

(7)focalloss:https://blog.csdn.net/u014365862/article/details/104216192

(8)https://blog.csdn.net/u014365862/article/details/106728375 / https://blog.csdn.net/u014365862/article/details/106728402

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 原创 | 深度学习框架比较,我该选择哪一个?

    近年来,深度学习在很多机器学习领域都有着非常出色的表现,在图像识别、语音识别、自然语言处理、机器人、网络广告投放、医学自动诊断和金融等领域有着广泛应用。面对繁多...

    数据派THU
  • 独家 | ​数据科学家必知的五大深度学习框架!(附插图)

    从出道起,我就一直是一名程序员。我喜欢从头开始编写代码,这有助于我清楚地理解主题(或技巧)。当我们刚开始学习数据科学时,这种方法尤为有用。

    数据派THU
  • TensorFlow与PyTorch之争,哪个框架最适合深度学习

    如果你在读这篇文章,那么你可能已经开始了自己的深度学习之旅。如果你对这一领域还不是很熟悉,那么简单来说,深度学习使用了「人工神经网络」,这是一种类似大脑的特殊架...

    机器之心
  • 终极之战!TensorFlow与PyTorch谁最适合深度学习

    如果你在读这篇文章,那么你可能已经开始了自己的深度学习之旅。如果你对这一领域还不是很熟悉,那么简单来说,深度学习使用了「人工神经网络」,这是一种类似大脑的特殊架...

    小小詹同学
  • TensorFlow与PyTorch之争,哪个框架最适合深度学习

    如果你在读这篇文章,那么你可能已经开始了自己的深度学习之旅。如果你对这一领域还不是很熟悉,那么简单来说,深度学习使用了「人工神经网络」,这是一种类似大脑的特殊架...

    OpenCV学堂
  • 干货 | 5个常用的深度学习框架

    对于学习数据科学的同学来说,从头开始实现神经网络,会让你理解很多有趣的东西。但是,我并不认为在真实数据集上构建深度学习模型是个明智的做法,除非你有数天或数周的...

    磐创AI
  • 库、教程、论文实现,这是一份超全的PyTorch资源列表(Github 2.2K星)

    项目地址:https://github.com/bharathgs/Awesome-pytorch-list

    zenRRan
  • 库、教程、论文实现,这是一份超全的PyTorch资源列表(Github 2.2K星)

    项目地址:https://github.com/bharathgs/Awesome-pytorch-list

    机器之心
  • PyTorch专栏(一)

    【磐创AI导读】:本篇文章讲解了PyTorch专栏的第一章,简单介绍了PyTorch及其环境搭建,希望对大家有所帮助。查看上篇关于本专栏的介绍:PyTorch专...

    磐创AI

扫码关注云+社区

领取腾讯云代金券