第一章:基于resnet网络【系列】多类别图像识别、迁移学习:猫狗分类实战

目录

1、前言

2、resnet 猫狗分类实战

2.1 训练

2.2 推理

3、更换数据集训练


1、前言

ResNet(残差网络)是一种深度卷积神经网络架构,广泛用于图像分类任务。它是由微软研究院的研究人员于2015年推出的,以其通过使用残差连接训练非常深的网络的能力而闻名。

ResNet背后的主要思想是解决深度神经网络训练过程中出现的梯度消失问题。当梯度变得太小而无法正确更新网络早期层中的权重时,就会出现这个问题,从而导致性能下降。

ResNet通过引入快捷连接或跳过连接来解决这个问题,这些连接允许网络学习残差映射。这些连接跳过一个或多个层,直接将输入传播到后面的层。这有助于减少梯度消失的影响,并允许网络学习更复杂、更深入的表示。

ResNet架构有不同的版本,如ResNet-18、ResNet-34、ResNet-50等。名称中的数字表示网络的深度,与层数相对应。较深的版本通常具有更好的性能,但需要更多的计算资源进行训练。

ResNet在各种图像分类挑战上取得了最先进的成果,包括ImageNet大规模视觉识别挑战赛(ILSVRC)。它也被广泛应用于其他计算机视觉任务,如对象检测和分割。

其中每一个模块的具体搭建参考之前的 博文,这里不多赘述

2、resnet 猫狗分类实战

为了方便做消融试验,这里将resnet 5个系列的模型复现,并且选择不同的优化器进行对比

项目下载在文末

2.1 训练

这里采用经典的二分类数据集猫、狗图像分类,其中训练集和验证集的数目为:1400、600

经过数据增强、输入网络的数据如下:

这里测试了100个epoch,效果如下:

这里采用了官方的预训练权重, 并且从头训练,导致过拟合

    parser.add_argument("--pretrained", default=True, type=bool)       # 采用官方权重
    parser.add_argument("--freeze_layers", default=True, type=bool)    # 冻结权重

指标曲线如下:

2.2 推理

这里推理脚本默认推理目录下的所有数据

默认需要保证和训练的版本一样,这里的提供两个模型,一个是最好的权重,一个是最后的权重

    parser.add_argument("--model", default='resnet18', type=str, help='resnet 18、34、50、101、152')  # 选择哪一个resnet模型
    parser.add_argument("--weights", default='runs/weights/best.pth', type=str, help='best、last')

推理如下:

3、更换数据集训练

项目下载:基于resnet网络系列实现的迁移学习、图像识别多分类项目:猫狗图像实战资源-CSDN文库

需要下载的库文件如下:【requirements.txt】

matplotlib==3.7.5
numpy==1.24.4
opencv_python==4.10.0.84
Pillow==10.4.0
prettytable==3.11.0
scikit_learn==1.3.2
torch==1.8.2+cu102
torchvision==0.9.2+cu102
tqdm==4.66.5

然后数据集摆放好即可:【里面每个目录都是同一类的图片数据

整个项目目录:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ai 医学图像分割

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值