0、前言

上一章,我们简单介绍了15种常用的深度学习图像分类模型,想了解模型结构的可以查看15种常用的深度学习图像分类模型(介绍 + 代码)
本章,我们将以猫狗分类数据集为例,介绍如何运行这15种模型。

1、数据集介绍

本文使用公开的猫狗数据集,数据集组织如图所示

在这里插入图片描述

  • TestImg: 作为模型训练完成后要测试的图片

  • train:训练集

  • val: 验证集

其中 train 文件夹包含每个类别的图片,以类别名称命名文件夹,如下图
 

在这里插入图片描述


示例Cat图片
 

在这里插入图片描述


示例Dog图片
 

在这里插入图片描述


同样,val 文件夹也包含每个类别的图片,以类别名称命名文件夹,如下图

在这里插入图片描述

为方便大家学习 这里给大家整理了一份学习资料包 需要的同学 根据下图自取即可

2、模型介绍

下载15种分类模型源码,如下图所示

在这里插入图片描述

打开底部README.txt可以看到有关代码的介绍

在这里插入图片描述

并且,每个模型文件夹里面都有一个READNME.md文件,指导我们如何训练,示例如图

在这里插入图片描述

3、训练模型

本次以 MobileNet 模型为例,训练猫狗数据集。打开README.txt,按里面步骤进行

在这里插入图片描述

3.1 准备训练和验证数据集

注意数据集格式只能是上述介绍的样式,即
–||clsdata
----||train
--------||class 1
-------------||1.jpg
-------------||2.jpg

--------||class 2
-------------||1.jpg
-------------||2jpg

----||val
--------||class 1
-------------||1.jpg
-------------||2.jpg

--------||class 2
-------------||1.jpg
-------------||2jpg

注意:数据不一定非要放到 data 目录下,任意目录都可以

3.2 下载预训练权重

根据 train.py 中使用的模型,下载对应的权重
示例中train.py使用的是mobilenet_v1模型,该模型没有预训练权重,所以要注释相关内容。

在这里插入图片描述


如果选择MobileNetV2模型,则根据readme.txt文档中的地址下载,下载完成后放入weight文件夹中,统一管理。

在这里插入图片描述

3.3 修改配置文件

需要修改如下内容

在这里插入图片描述

  • 修改模型名称net_name,可为任意值,用于训练完成后保存的名称

  • 修改模型分类类别数class_num,这里猫狗只有2类

  • 修改训练集和验证集的存放路径train_path,val_path

  • 每一轮的训练及测试结果会保存到.csv文件中,修改.csv文件的保存路径csv_path

  • 修改最好模型的保存路径save_path

  • 修改预训练权重的路径pre_weight

为方便大家学习 这里给大家整理了一份学习资料包 需要的同学 根据下图自取即可

3.4 训练

找到对应模型文件夹的 train.py 脚本, 右键运行即可

在这里插入图片描述

训练的时候会在模型文件夹外自动生成映射文件,用于模型预测使用
 

在这里插入图片描述


注意:如果在ubantu系统上训练,由于ubantu系统不支持使用plt.plot绘制图像,需要注释掉相关语句,如下图所示

在这里插入图片描述

3.5 预测

图片

  • predict.py中修改测试图片的路径img_path

  • predict.py中修改读取类别映射的路径class_path

  • predict.py中修改加载模型权重的路径weights_path,将其改为训练过程中保存的最好模型的路径

预测结果显示

在这里插入图片描述

为了小伙伴们能够,更好的学习实践,本文已将训练代码和数据集打包上传,供小伙伴们学习。获取方式如下:

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐