斯坦福120类狗分类

P粉084495128
发布: 2025-07-25 10:08:17
原创
586人浏览过
斯坦福犬数据集含120种犬的20580张图像,用于细粒度分类。文中介绍了解压数据集、安装PaddleX与PaddleClas等环境准备步骤,还涉及用PaddleX划分数据集、配置PaddleClas进行训练,以及模型评估、预测和推理等流程,总结了相关工具在图像分类任务中的表现及注意事项。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

斯坦福120类狗分类 - php中文网

你是什么样的狗?

斯坦福120类狗分类 - php中文网        

什么?你不认识?那么来让AI告诉你吧!

斯坦福120类狗分类 - php中文网        

1.数据集介绍

1.1语境

斯坦福犬数据集包含来自世界各地的120种犬的图像。此数据集是使用ImageNet的图像和注释构建的,用于完成细粒度的图像分类任务。它最初是为进行细粒度图像分类而收集的,这是一个具有挑战性的问题,因为某些犬种具有几乎相同的特征或颜色和年龄不同。

1.2内容

  • 类别数:120
  • 图片数量:20,580
  • 其他:标签,标注框

1.3 致谢

原始数据源可在 http://vision.stanford.edu/aditya86/ImageNetDogs/ 上找到,其中包含有关训练/测试拆分和基线结果的其他信息。

如果您在出版物中使用此数据集,请在以下论文中引用该数据集:

first

Aditya Khosla,Nityananda Jayadevaprakash,Bangpeng Yao和Li Fei-Fei。用于细粒度图像分类的新型数据集。第一次细粒度视觉分类(FGVC)研讨会,IEEE计算机视觉和模式识别会议(CVPR),2011年。[pdf] [海报] [BibTex]

Secondary

J. Deng,W. Dong,R. Socher,L.-J。Li,K. Li和L. Fei-Fei,ImageNet:大型分层图像数据库。IEEE计算机视觉和模式识别(CVPR),2009年。[pdf] [BibTex]

https://unsplash.com/photos/U6nlG0Y5sfs

1.3 其他任务

  • 您能否正确识别具有类似特征的犬种,例如贝塞猎狗和猎犬?
  • 这吉娃娃是年纪大还是年纪大?

2.数据解压

In [ ]
# 解压缩,一次即可# !unzip -aoq data/data87695/Stanford_Dogs_Dataset.zip -d dataset
登录后复制
   
In [ ]
!ls dataset/images/Images/
登录后复制
   

由上可见共计有120分类

来福FM
来福FM

来福 - 你的私人AI电台

来福FM 243
查看详情 来福FM

3.环境准备

3.1 paddlex安装

In [ ]
# PaddleX安装! pip install paddlex# 切记切记paddle2onnx!pip install paddle2onnx
登录后复制
   

3.2 paddleclas安装

In [ ]
!git clone https://gitee.com/paddlepaddle/PaddleClas.git --depth=1
登录后复制
   
In [ ]
!cd PaddleClas && pip3 install --upgrade -r requirements.txt
登录后复制
   

4.数据集处理

4.1利用paddlex划分数据集

分别生成 labels.txt test_list.txt train_list.txt val_list.txt

In [ ]
# 数据集划分!paddlex --split_dataset --format ImageNet --dataset_dir ~/dataset/images/Images --val_value 0.2 --test_value 0.1
登录后复制
   

4.2标签查看

In [ ]
# 各种标签查看!cat  ~/dataset/images/Images/labels.txt
登录后复制
   

5.PaddleClas配置

5.1 基础配置

  • 进入PaddleClas目录
  • 设置显卡
In [ ]
# 进入PaddleClas%cd ~/PaddleClas
登录后复制
   
In [ ]
!export CUDA_VISIBLE_DEVICES=0
登录后复制
   

5.2 PaddleClas训练配置

使用PaddleClas/configs/MobileNetV3/MobileNetV3smallx075.yaml

mode: 'train'ARCHITECTURE:
    name: "MobileNetV3_small_x0_75"pretrained_model: ""model_save_dir: "./output/"# 120类classes_num: 120# 总图片数量total_images: 20580save_interval: 1ls_epsilon: 0.1validate: Truevalid_interval: 1# 训练轮次epochs: 360topk: 5image_shape: [3, 224, 224]LEARNING_RATE:
    function: 'Cosine'
    params:
        lr: 2.6
        warmup_epoch: 5OPTIMIZER:
    function: 'Momentum'
    params:
        momentum: 0.9
    regularizer:
        function: 'L2'
        factor: 0.00002TRAIN:
    batch_size: 4096
    num_workers: 4
    file_list: "/home/aistudio/dataset/images/Images/train_list.txt"
    data_dir: "/home/aistudio/dataset/images/Images"
    shuffle_seed: 0
    transforms:
        - DecodeImage:
            to_rgb: True
            channel_first: False
        - RandCropImage:
            size: 224
        - RandFlipImage:
            flip_code: 1
        - NormalizeImage:
            scale: 1./255.
            mean: [0.485, 0.456, 0.406]            std: [0.229, 0.224, 0.225]            order: ''
        - ToCHWImage:VALID:
    batch_size: 64
    num_workers: 4
    file_list: "/home/aistudio/dataset/images/Images/val_list.txt"
    data_dir: "/home/aistudio/dataset/images/Images"
    shuffle_seed: 0
    transforms:
        - DecodeImage:
            to_rgb: True
            channel_first: False
        - ResizeImage:
            resize_short: 256
        - CropImage:
            size: 224
        - NormalizeImage:
            scale: 1.0/255.0
            mean: [0.485, 0.456, 0.406]            std: [0.229, 0.224, 0.225]            order: ''
        - ToCHWImage:
登录后复制
   
In [ ]
!pwd
登录后复制
   

5.3训练bug

2021-05-10 01:36:33,765 - ERROR - DataLoader reader thread raised an exception!2021-05-10 01:36:33,766 - ERROR - (Fatal) Blocking queue is killed because the data reader raises an exception.
  [Hint: Expected killed_ != true, but received killed_:1 == true:1.] (at /paddle/paddle/fluid/operators/reader/blocking_queue.h:158)
登录后复制
   

5.4 finetune

'./configs/quick_start/MobileNetV3_large_x1_0_finetune.yaml'

mode: 'train'ARCHITECTURE:
    name: 'MobileNetV3_large_x1_0'pretrained_model: "./pretrained/MobileNetV3_large_x1_0_pretrained"model_save_dir: "./output/"use_gpu: True# 120类classes_num: 120# 总图片数量20580total_images: 14499save_interval: 1validate: Truevalid_interval: 1epochs: 20topk: 1image_shape: [3, 224, 224]LEARNING_RATE:
    function: 'Cosine'          
    params:                   
        lr: 0.00375OPTIMIZER:
    function: 'Momentum'
    params:
        momentum: 0.9
    regularizer:
        function: 'L2'
        factor: 0.000001TRAIN:
    batch_size: 160
    num_workers: 0
    file_list: "/home/aistudio/dataset/images/Images/train_list.txt"
    data_dir: "/home/aistudio/dataset/images/Images/"
    shuffle_seed: 0
    transforms:
        - DecodeImage:
            to_rgb: True
            channel_first: False
        - RandCropImage:
            size: 224
        - RandFlipImage:
            flip_code: 1
        - NormalizeImage:
            scale: 1./255.
            mean: [0.485, 0.456, 0.406]            std: [0.229, 0.224, 0.225]            order: ''
        - ToCHWImage:VALID:
    batch_size: 160
    num_workers: 0
    file_list: "/home/aistudio/dataset/images/Images/val_list.txt"
    data_dir: "/home/aistudio/dataset/images/Images/"
    shuffle_seed: 0
    transforms:
        - DecodeImage:
            to_rgb: True
            channel_first: False
        - ResizeImage:
            resize_short: 256
        - CropImage:
            size: 224
        - NormalizeImage:
            scale: 1.0/255.0
            mean: [0.485, 0.456, 0.406]            std: [0.229, 0.224, 0.225]            order: ''
        - ToCHWImage:
登录后复制
   

5.5下载预训练模型

In [ ]
 !python tools/download.py -a MobileNetV3_large_x1_0 -p ./pretrained -d True
登录后复制
   

6.开始训练

In [21]
!python tools/train.py -c './configs/quick_start/MobileNetV3_large_x1_0_finetune.yaml'
登录后复制
   

visualDL可视化metrics图标

斯坦福120类狗分类 - php中文网        

7. 模型评估

可以通过以下命令进行模型评估。

In [23]
!python tools/eval.py \
    -c ./configs/quick_start/MobileNetV3_large_x1_0_finetune.yaml \
    -o pretrained_model="./output/MobileNetV3_large_x1_0/best_model/ppcls"\
    -o load_static_weights=False
登录后复制
   

8. 使用预训练模型进行模型预测

模型训练完成之后,可以加载训练得到的预训练模型,进行模型预测。在模型库的 tools/infer/infer.py 中提供了完整的示例,只需执行下述命令即可完成模型预测:

In [25]
!python tools/infer/infer.py \
    -i ../111.jpg \
    --model MobileNetV3_large_x1_0 \
    --pretrained_model "./output/MobileNetV3_large_x1_0/best_model/ppcls" \
    --use_gpu True \
    --load_static_weights False
登录后复制
   

9.使用inference模型进行模型推理

通过导出inference模型,PaddlePaddle支持使用预测引擎进行预测推理。接下来介绍如何用预测引擎进行推理: 首先,对训练好的模型进行转换:

In [27]
!python tools/export_model.py \
    --model MobileNetV3_large_x1_0 \
    --pretrained_model ./output/MobileNetV3_large_x1_0/best_model/ppcls \
    --output_path ./inference
登录后复制
   
In [29]
!python tools/infer/predict.py \
    --image_file ../dataset/images/Images/n02085936-Maltese_dog/n02085936_10148.jpg \
    --model_file "./inference/inference.pdmodel" \
    --params_file "./inference/inference.pdiparams" \
    --use_gpu=True \
    --use_tensorrt=False
登录后复制
   

10.总结

总的来说,paddleclas以及paddlex面对多类型、大数据量图像分类任务有很优秀得表现,有以下几点需要注意:

  1. 在提高acc并兼顾效率时,最好使用轻量级模型,并适当选择图像增强策略;
  2. 使用visualDL可视化Metrics,可以实时观察训练走势,即使调整策略。

以上就是斯坦福120类狗分类的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号