PaddleClas 主要代码和目录结构如下

  • benchmark: 文件夹下存放了一些 shell 脚本,主要是为了测试 PaddleClas 中不同模型的速度指标,如单卡训练速度指标、多卡训练速度指标等。
  • dataset:文件夹下存放数据集和用于处理数据集的脚本。脚本负责将数据集处理为适合 Dataloader 处理的格式。
  • deploy:部署核心代码,文件夹存放的是部署工具,支持 python/cpp inference、Hub Serveing、Paddle Lite、Slim 离线量化等多种部署方式。
  • ppcls:训练核心代码,文件夹下存放 PaddleClas 框架主体。配置文件、模型训练、评估、预测、动转静导出等具体代码实现均在这里。
  • tools:训练、评估、预测、模型动转静导出的入口函数和脚本均在该文件下。
  • requirements.txt 文件用于安装 PaddleClas 的依赖项。使用 pip 进行升级安装使用。
  • tests:PaddleClas 模型从训练到预测的全链路测试,验证各功能是否能够正常使用。

PaddleClas/code_overview.md at release/2.3 · PaddlePaddle/PaddleClas · GitHubA treasure chest for visual recognition powered by PaddlePaddle - PaddleClas/code_overview.md at release/2.3 · PaddlePaddle/PaddleClashttps://github.com/PaddlePaddle/PaddleClas/blob/release/2.3/docs/zh_CN/advanced_tutorials/code_overview.md

配置文件

# 训练时评估
"""
模型在训练的时候,可以设置模型保存的间隔,也可以选择每隔若干个 epoch 对验证集进行评估,从而可以保存在验证集上精度最佳的模型。配置文件中,可以通过下面的字段进行配置。
"""
Global:checkpoints: nullpretrained_model: ./output/MobileNetV3_large_x1_0/best_model
#  pretrained_model: nulloutput_dir: ./output/device: gpusave_interval: 100               # 模型保存的 epoch 间隔eval_during_train: True          # 是否进行训练时评估eval_interval: 10                # 评估的 epoch 间隔epochs: 500print_batch_step: 10use_visualdl: False# used for static mode and model exportimage_shape: [3, 224, 224]save_inference_dir: ./inference# model architecture
Arch:name: MobileNetV3_large_x1_0class_num: 2# 损失函数
"""
PaddleClas 中,包含了 CELoss, JSDivLoss, TripletLoss, CenterLoss 等损失函数,均定义在 ppcls/loss 中。
在 ppcls/loss/__init__.py 文件中,使用 CombinedLoss 来构建及合并损失函数,不同训练策略中所需要的损失函数与计算方法不同,PaddleClas 在构建损失函数过程中,主要考虑了以下几个因素。
1是否使用 label smooth
2是否使用 mixup 或者 cutmix
3是否使用蒸馏方法进行训练
4是否是训练 metric learning
"""Loss:Train:- CELoss:weight: 1.0epsilon: 0.1Eval:- CELoss:weight: 1.0#  优化器和学习率衰减、权重衰减策略
"""
图像分类任务中,Momentum 是一种比较常用的优化器,PaddleClas 中提供了 Momentum 、 RMSProp、Adam 及 AdamW 等几种优化器策略。
权重衰减策略是一种比较常用的正则化方法,主要用于防止模型过拟合。 PaddleClas 中提供了 L1Decay 和 L2Decay 两种权重衰减策略。
学习率衰减是图像分类任务中必不可少的精度提升训练方法,PaddleClas 目前支持 Cosine, Piecewise, Linear 等学习率衰减策略。
在配置文件中,优化器、权重衰减策略、学习率衰减策略可以通过以下的字段进行配置。
"""
Optimizer:name: Momentummomentum: 0.9lr:name: Cosinelearning_rate: 0.05warmup_epoch: 5regularizer:name: 'L2'coeff: 0.00002# data loader for train and eval
DataLoader:Train:dataset:name: ImageNetDatasetimage_root: ../dataset/JiEr_Clas/traincls_label_path: ../dataset/JiEr_Clas/train/train.txt# 训练时,标准的数据预处理包含如下五个部分,按照顺序对数据进行如下转换transform_ops:- DecodeImage:to_rgb: Truechannel_first: False- RandCropImage:size: 224- RandFlipImage:flip_code: 1- AutoAugment:- NormalizeImage:scale: 1.0/255.0mean: [0.485, 0.456, 0.406]std: [0.229, 0.224, 0.225]order: ''sampler:name: DistributedBatchSamplerbatch_size: 8drop_last: Falseshuffle: Trueloader:num_workers: 2use_shared_memory: FalseEval:dataset: name: ImageNetDatasetimage_root: ../dataset/JiEr_Clas/valcls_label_path: ../dataset/JiEr_Clas/val/val.txttransform_ops:- DecodeImage:to_rgb: Truechannel_first: False- ResizeImage:resize_short: 256- CropImage:size: 224- NormalizeImage:scale: 1.0/255.0mean: [0.485, 0.456, 0.406]std: [0.229, 0.224, 0.225]order: ''sampler:name: DistributedBatchSamplerbatch_size: 8drop_last: Falseshuffle: Falseloader:num_workers: 2use_shared_memory: TrueInfer:infer_imgs: docs/images/whl/demo.jpgbatch_size: 10transforms:- DecodeImage:to_rgb: Truechannel_first: False- ResizeImage:resize_short: 256- CropImage:size: 224- NormalizeImage:scale: 1.0/255.0mean: [0.485, 0.456, 0.406]std: [0.229, 0.224, 0.225]order: ''- ToCHWImage:PostProcess:name: Topktopk: 5class_id_map_file: ppcls/utils/imagenet1k_label_list.txtMetric:Train:- TopkAcc:topk: [1, 2]Eval:- TopkAcc:topk: [1, 2]

PaddleClas相关推荐

  1. 134个预训练模型、精度高达85.1%,百度视觉算法最强基石PaddleClas全新升级

    机器之心发布 机器之心编辑部 百度 PaddlePaddle 团队开发的 PaddleClas 是一个适用于业界和学界的图像分类任务工具集,可以帮助用户训练更好的计算机视觉模型并应用于真实场景中.近期 ...

  2. Paddle.js PaddleClas 实战 ——『寻物大作战』AI 小游戏

    1. 前言 AI 自诞生以来就应用在各个科技前沿领域,随着发展进程加快,在娱乐方面也有越来越多的趣味性游戏开始将AI融入其中.『寻物大作战』正是一款基于 AI 能力打造的趣味性小游戏,目的就是让玩家通 ...

  3. PaddleClas高效实现口红检测识别

    PaddleClas助力口红检测&识别 数据说明 查看Paddle版本 安装PaddleClas 下载通用场景检测模型和识别模型 解压文件 测试Gucci口红是否存在 口红识别训练 数据处理 ...

  4. 『paddle』paddleclas 学习笔记:分类预训练模型选择

    目录 ImageNet预训练模型库 模型库概览图 SSLD知识蒸馏预训练模型 ResNet 及其 Vd 系列 移动端系列 SEResNeXt与Res2Net系列 DPN 与 DenseNet 系列 H ...

  5. 快速上手飞桨PaddleClas图像分类库

    PaddleClas是百度为工业界和学术界所准备的一个图像分类工具集,使用此工具便可以简单实现高精度分类任务. 本文使用AIStudio计算平台建立一个实践项目,来演示PaddleClas的使用.项目 ...

  6. PaddleClas蝴蝶分类

    任务描述 近年来,随着人工智能的发展,其在语音识别.自然语言处理.图像与视频分析等诸多领域取得了巨大成功.如何将人工智能技术应用到更广泛的领域成为了重要目标,本次竞赛将聚焦蝴蝶图片的细粒度图像分类,利 ...

  7. 基于飞桨图像分类套件PaddleClas的柠檬分类竞赛实战

    前情提要   通过之前教程中的学习,相信大家对于如何搭建一个分类网络已经清晰了.那么我们不禁会想,有没有更快速的尝试模型及技巧的方法呢?因为我们在上一次课程中使用的代码都需要自己进行开发,自己写需要很 ...

  8. 【AI达人创造营第二期】基于PaddleClas的新冠肺炎CT影像的分类

    转自AI Studio,原文链接:[AI达人创造营第二期]基于PaddleClas的新冠肺炎CT影像的分类 - 飞桨AI Studio 一.项目背景 新近爆发的2019新型冠状病毒(SARS-CoV- ...

  9. 基于 PaddleClas 的 SoccerNet 足球 ReID 基线

    1. 介绍 一个基于 PaddleClas 套件和 SoccerNet ReID 数据集开发的足球运动员重识别(ReID)的基线 支持 ResNet.MobileNet 等多种经典 Backbone, ...

最新文章

  1. hive定时清洗至mysql_hive,sqoop定时执行脚本举例
  2. 高并发场景之RabbitMQ篇
  3. 爱是相互的,这样才是平衡
  4. 2.1 《数据库系统概论》关系数据结构及形式化定义(关系、关系模式、关系数据库)
  5. 二叉树的前序遍历Python解法
  6. Android Studio如何减小APK体积
  7. python动态映射_Python Django框架url反向解析实现动态生成对应的url链接示例
  8. Beacon Mountain 测试版 – 常见问题解答
  9. 应用于电力电子变压器的双向DC_DC变换器综述(学习笔记)
  10. 工业级Pass云平台SpringCloudAlibaba综合项目实战(一):序言
  11. tcp流式传输_收听互联网广播以及下载和流式传输免费音乐的最佳网站
  12. IT系统架构及架构体系详解
  13. 计算机管理怎么看内存条,内存条,教您怎么查看内存条的型号
  14. linux系统新增一块SCSI硬盘并分区挂载到指定目录
  15. 《都挺好》苏明哲为什么会失业,美国程序员不好找工作吗?
  16. html在不可编辑页面字段下沉,[Web前端技术教学]《基于Web标准的网页设计与制作》试题及答案...
  17. Java学习历程——JVM的JMM模型
  18. 非本小伙花了两年从小公司到蚂蚁金服,面试经验分享
  19. Logic Pro X自带音色库列表
  20. PCB学习笔记——如何改变图纸大小

热门文章

  1. 2021年大数据Spark(十三):Spark Core的RDD创建
  2. Laravel Dcat Admin 安装
  3. php 伪静态 page-18.html,PHP 伪静态实现技术原理讲解
  4. LookupError: unknown encoding: uft-8
  5. AttributeError: ‘dict‘ object has no attribute ‘append‘
  6. Error:This Gradle plugin requires Studio 3.0 minimum
  7. android weight(权重)的具体分析
  8. android gravity和layout_gravity区别
  9. [19/03/30-星期六] IO技术_四大抽象类_ 字节流( 字节输入流 InputStream 、字符输出流 OutputStream )_(含字节文件缓冲流)...
  10. 中国互联网+果汁行业商业模式创新与投资机会深度研究报告