小熊飞桨练习册-06Paddlex垃圾分类

文件说明

文件 说明 train.py 训练程序 quant.py 量化程序 prune.py 裁剪程序 test.py 测试程序 infer.py 预测程序 onekey.sh 一键获取数据到 dataset 目录下 onetasks.sh 一键训练,量化脚本 get_data.sh 获取数据到 dataset 目录下 check_data.sh 检查 dataset 目录下的数据是否存在 mod/args.py 命令行参数解析 mod/pdxconfig.py PaddleX 配置 mod/config.py 配置 mod/utils.py 杂项 mod/report.py 结果报表 dataset 数据集目录 output 训练参数保存目录 result 预测结果保存目录

环境依赖

数据集

一键获取数据

  • 运行脚本,包含以下步骤:获取数据,生成图像路径和标签的文本文件,检查数据。
  • 详情查看 *onekey.sh

如果运行在本地计算机,下载完数据,文件放到 dataset 目录下,在项目目录下运行下面脚本。

如果运行在百度 AI Studio 环境,查看 data 目录是否有数据,在项目目录下运行下面脚本。

bash onekey.sh

配置模块

可以查看修改 mod/pdxconfig.py 文件,有详细的说明

开始训练

运行 train.py 文件,查看命令行参数加 -h

python3 run/train.py \
    --dataset ./dataset/train \
    --epochs 32 \
    --batch_size 16 \
    --learning_rate 0.01 \
    --lr_decay_epochs "16"\
    --lr_decay_gamma 0.25 \
    --model MobileNetV3_large_ssld \
    --pretrain_weights "IMAGENET"
  -h, --help            show this help message and exit
  --cpu                 是否使用 cpu 计算,默认使用 CUDA
  --num_workers         线程数量,默认 auto,为CPU核数的一半
  --epochs              训练几轮,默认 4 轮
  --batch_size          一批次数量,默认 16
  --learning_rate       学习率,默认 0.025
  --early_stop          是否使用提前终止训练策略。默认为 False
  --early_stop_patience
                        当使用提前终止训练策略时,如果验证集精度在early_stop_patience 个 epoch
                        内连续下降或持平,则终止训练。默认为 5
  --save_interval_epochs
                        模型保存间隔(单位: 迭代轮数)。默认为 1
  --log_interval_steps
                        训练日志输出间隔(单位:迭代次数)。默认为 10
  --resume_checkpoint   恢复训练时指定上次训练保存的模型路径, 默认不会恢复训练
  --save_dir            模型保存路径。默认为 ./output/
  --dataset             数据集目录,默认 ./dataset/
  --train_list          训练集列表,默认 '--dataset' 参数目录下的 train_list.txt
  --eval_list           评估集列表,默认 '--dataset' 参数目录下的 val_list.txt
  --label_list          分类标签列表,默认 '--dataset' 参数目录下的 labels.txt
  --warmup_steps        默认优化器的 warmup 步数,学习率将在设定的步数内,从 warmup_start_lr
                        线性增长至设定的 learning_rate,默认为 0
  --warmup_start_lr     默认优化器的 warmup 起始学习率,默认为 0.0
  --lr_decay_epochs     默认优化器的学习率衰减轮数。默认为 30 60 90
  --lr_decay_gamma      默认优化器的学习率衰减率。默认为 0.1
  --use_ema             是否使用指数衰减计算参数的滑动平均值。默认为 False
  --opti_scheduler      优化器的调度器,默认 auto,可选 auto,cosine,piecewise
  --opti_reg_coeff      优化器衰减系数,如果 opti_scheduler 是 Cosine,默认是 4e-05,如果
                        opti_scheduler 是 Piecewise,默认是 1e-04
  --pretrain_weights    若指定为'.pdparams'文件时,从文件加载模型权重;若为字符串'IMAGENET',则自动下载在Ima
                        geNet图片数据上预训练的模型权重;若为字符串'COCO',则自动下载在COCO数据集上预训练的模型权重;
                        若为None,则不使用预训练模型。默认为'IMAGENET'
  --model               PaddleX 模型名称
  --model_list          输出 PaddleX 模型名称,默认不输出,选择后只输出信息,不会开启训练
  --backbone            目标检测模型的 backbone 网络

查看支持的模型

  • 运行命令
python3 run/train.py --model_list
'PPLCNet', 'PPLCNet_ssld', 'ResNet18', 'ResNet18_vd', 'ResNet34', 'ResNet34_vd', 'ResNet50', 'ResNet50_vd', 'ResNet50_vd_ssld', 'ResNet101', 'ResNet101_vd', 'ResNet101_vd_ssld', 'ResNet152', 'ResNet152_vd', 'ResNet200_vd', 'DarkNet53', 'MobileNetV1', 'MobileNetV2', 'MobileNetV3_small', 'MobileNetV3_small_ssld', 'MobileNetV3_large', 'MobileNetV3_large_ssld', 'Xception41', 'Xception65', 'Xception71', 'ShuffleNetV2', 'ShuffleNetV2_swish', 'DenseNet121', 'DenseNet161', 'DenseNet169', 'DenseNet201', 'DenseNet264', 'HRNet_W18_C', 'HRNet_W30_C', 'HRNet_W32_C', 'HRNet_W40_C', 'HRNet_W44_C', 'HRNet_W48_C', 'HRNet_W64_C', 'AlexNet'

测试模型

运行 test.py 文件,查看命令行参数加 -h

python3 run/test.py --model_dir ./output/best_model \
    --epochs 4 \
    --dataset ./dataset/train \
    --test_list ./dataset/train/test_list.txt
  -h, --help    show this help message and exit
  --cpu         是否使用 cpu 计算,默认使用 CUDA
  --epochs      测试几轮,默认 4 轮
  --dataset     数据集目录,默认 ./dataset/
  --test_list   训练集列表,默认 '--dataset' 参数目录下的 test_list.txt
  --model_dir   读取训练后的模型目录,默认 ./output/best_model

预测模型

运行 infer.py 文件,查看命令行参数加 -h

python3 run/infer.py --dataset ./dataset/train --model_dir ./output/best_model
  -h, --help      show this help message and exit
  --cpu           是否使用 cpu 计算,默认使用 CUDA
  --dataset       数据集目录,默认 ./dataset/
  --infer_list    预测集列表,默认 '--dataset' 参数目录下的 infer_list.txt
  --model_dir     读取训练后的模型目录,默认 ./output/best_model
  --result_info   显示预测结果详细信息,默认 不显示
  --result_path   预测结果文件路径,默认 ./result/result.csv
  --split         数据分隔符,默认 ','

VisualDL 可视化分析工具

  • 安装和使用说明参考:VisualDL
  • 如果是 AI Studio 环境训练的把 output/vdl_log 目录下载下来,解压缩后放到本地项目目录下 output/vdl_log 目录
  • 在项目目录下运行下面命令
  • 然后根据提示的网址,打开浏览器访问提示的网址即可
visualdl --logdir ./output/vdl_log

Original: https://www.cnblogs.com/cnhemiya/p/16280476.html
Author: 小熊宝宝啊
Title: 小熊飞桨练习册-06Paddlex垃圾分类

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/710870/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 【摸鱼神器】一次搞定 vue3的 路由 + 菜单 + tabs

    做一个管理后台,首先要设置路由,然后配置菜单(有时候还需要导航),再来一个动态tabs,最后加上权限判断。 这个是不是有点繁琐?尤其是路由的设置和菜单的配置,是不是很雷同?那么能不…

    技术杂谈 2023年5月31日
    099
  • 力扣算法题9. 回文数(Java)

    力扣算法题9. 回文数(Java) 给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向左)读都是一…

    技术杂谈 2023年7月25日
    065
  • 基础篇——Pycharm的安装与使用初学者此篇够用

    简介 Pycharm是python编程过程中最为推荐的编辑调试软件之一,其使用简单,界面友好,也成了学习Python路上必须学会的软件之一,本篇教程简单介绍一下windows用户从…

    技术杂谈 2023年7月23日
    0103
  • java学习之JSON

    JSON可以说是javascript的一种数据类型,我们学习JSON是为了在客户端的数据给读取出来,官方的解释是:概述:JSON(JavaScript Object Notatio…

    技术杂谈 2023年6月21日
    097
  • SSD目标检测网络解读(含网络结构和内容解读)

    SSD实现思路 SSD具有如下主要特点: 从YOLO中继承了将detection转化为regression的思路,一次完成目标定位与分类 基于Faster RCNN中的Anchor…

    技术杂谈 2023年7月25日
    064
  • 让你的app在iPhoneX中全屏显示

    如果你的项目什么也不修改,直接把你的app运行在 iPhone X 模拟器下,很有可能就会出现下面的情形: 上下都有黑边,没有全屏显示 为了让app能够全屏显示,你需要准备以下的内…

    技术杂谈 2023年6月1日
    0101
  • 安装webgot漏洞实验平台时遇到的java环境配置问题

    6 .安装并注册 依次执行命令: 将已下载的Java版本登记为替代版本,将其改成作为默认版本来使用: update-alternatives –install /usr…

    技术杂谈 2023年7月11日
    066
  • Understanding the managed heap

    【 Understanding the managed heap】 1、common problem faced by many Unity developers is the u…

    技术杂谈 2023年5月31日
    094
  • Mysql底层索引使用B+树(数据结构学习感悟)

    Mysql底层索引使用B+树(数据结构学习感悟) 注:本文仅代表个人观点,没有任何依据,如有错误,敬请斧正 考研学习数据结构,有了比之前更深的认识,或者说数据结构运用无处不在,如H…

    技术杂谈 2023年7月11日
    055
  • Toom-Cook 大整数乘法

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    技术杂谈 2023年7月11日
    0105
  • wordpress说明

    ea.zhoujingen.cn 网站备注 BackWPup备份插件,需要时启动插件备份,否则导致网站打开Waiting(TTFB)增加1秒 Original: https://w…

    技术杂谈 2023年5月31日
    0108
  • cron 表达式

    cron 表达式 1.简介:一个cron表达式最少有5个空格来分割时间元素,总共有7个元素,分别如下: ① 秒(0-59) ② 分钟(0-59) ③ 小时(0-23) ④ 天(月的…

    技术杂谈 2023年7月24日
    091
  • Windows Server 开启远程桌面

    工作中不可避免地经常要用到WindowsServer,为了使用的方便,配置了远程桌面,这里记录一下远程桌面配置过程中遇到的一些问题以及解决方法。 Windows Server200…

    技术杂谈 2023年7月11日
    093
  • MQTTGUI客户端可视化管理工具推荐

    一款好用的 MQTT 客户端工具可以极大地提高开发者使用MQTT的效率。MQTT 客户端工具常用于建立与 MQTT 服务器的连接,进行主题订阅、消息收发等操作。 今天,在此推荐一款…

    技术杂谈 2023年7月24日
    066
  • 设计模式概述(一)

    设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的…

    技术杂谈 2023年7月11日
    060
  • fastjason常用方法

    什么是fastjson? Fastjson是一个Java语言编写的高性能功能完善的JSON库。它采用一种”假定有序快速匹配”的算法,把JSON Parse的…

    技术杂谈 2023年5月30日
    082
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球