【Pytorch项目实战】之ResNet系列:resnet18、resnet34、resnet50、resnet101、resnet152

70 篇文章 166 订阅
  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
1.项目代码功能经验证ok,确保稳定可靠运行。欢迎下载使用! 2.主要针对各个计算机相关专业,包括计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师或企业员工使用。 3.项目具有丰富的拓展空间,不仅可作为入门进阶,也可直接作为毕设、课程设计、大作业、初期项目立项演示等用途。 4.当然也鼓励大家基于此进行二次开发。在使用过程中,如有问题或建议,请及时私信沟通。 5.期待你能在项目中找到乐趣和灵感,也欢迎你的分享和反馈! 【资源说明】 基于ResNet50和Cifar10数据集的全卷积图像识别分类源码+项目说明(Jupyter Notebook运行).zip **全卷积模型**:本项目将**CNN**模式后面的**全连接层换成卷积层**,所以整个网络都是**卷积层**。其最后输出的是一张已经标记好的**热图**,而**不是一个概率值**。 通常的CNN网络中,在最后都会有几层全连接网络来融合特征信息,然后再对融合后的特征信息进行softmax分类,如下图所示: 假设最后一层的**feature_map**的大小是**7x7x512**,那么**全连接层**做的事就是用**4096个7x7x512**的滤波器去卷积这个最后的**feature_map**。所以可想而知这个参数量是很大的!! 但是**全卷积网络**就简单多了。**FCN**的做法是将最后的全连接层替换为**4096个1x1x512**的**卷积核**,所以最后得出来的就是一个二维的图像,然后再对这个二维图像进行**上采样**(反卷积),然后再对最后反卷积的图像的每个像素点进行softmax分类。 我们都知道卷积层后的**全连接目的**是将 卷积输出的二维特征图(feature map)转化成($N\times 1$)**一维的一个向量**因为传统的卷积神经网络的输出都是分类(一般都是**一个概率值**),也就是几个类别的概率甚至就是一个类别号,那么全连接层就是高度提纯的特征了,方便交给最后的分类器或者回归。 根据全连接的目的,我们完全可以利用卷积层代替全连接层,在输入端使用 $M\times M$ 大小的卷积核将数据“扁平化处理”,在使用 $1\times 1$ 卷积核对数据进行降维操作,最终卷积核的通道数即是我们预测数据的维度。这样在输入端不将数据进行扁平化处理,还可以使得图片保留其空间信息: 使用全卷积层的优点: * 全卷积层能够兼容不同大小的尺寸输入。 * 与global avg pooling类似,可以大大减少网络参数量 **CIFAR-10**是一个更接近**普适物体**的彩色图像数据集。CIFAR-10 是由Hinton 的学生Alex Krizhevsky 和Ilya Sutskever 整理的一个用于识别普适物体的小型数据集。一共包含**10 个类别**的**RGB**彩色图片:**飞机**(airplane)、**汽车**(automobile)、**鸟类**(bird)、**猫**(cat)、**鹿**(deer)、**狗**(dog)、**蛙类**(frog)、**马**(horse)、**船**(ship)和**卡车**(truck). 每个图片的尺寸为$32\times 32$,每个类别有**6000**个图像,数据集中一共有**50000**张训练图片和**10000**张测试图片。
【资源说明】 基于Pytorch框架实现ResNet18中嵌入视觉注意力机制python源码+项目说明.zip 在ResNet18中嵌入视觉注意力机制 # 实验环境 实验环境配置 | **相关设置** | | | ------------ | ---------------------------------------------- | | 实验数据集 | CIFAR-100 | | 实验平台 | Pytorch 1.12.0 | | 神经网络 | ResNet18 | | 损失函数 | CrossEntropyLoss | | 优化器 | Adam | | 学习率 | 0.001,每迭代20次更新 | | BATCH_SIZE | 50 | | Epochs | 20,50 | | Python 版本 | Python 3.8 | | 代码编辑器 | Jupyter lab | | 操作系统 | Win10 | | CPU | IntelI CoreI i7-10750H CPU @ 2.60GHz 2.59 GHz | | CUDA版本 | 4.8.3 | 需要的包: - ` torch`,`torchvision`, - `matplotlib`, - `numpy`,`pandas`,`time` - `thop` 安装方式: - 依赖包安装方式为:打开Anaconda Prompt,在命令行输入 ``` pip install + 包名 ``` - Pytorch安装方式 在Anaconda中,安装pytorch 环境,在Anaconda Promp中,输入以下指令 ``` conda install pytorch torchvision cudatoolkit=10.1 -c pytorch ``` 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
ResNet是一种深度卷积神经网络架构,用于解决神经网络在添加更多层时训练困难和准确性下降的问题。ResNet通过引入跳跃连接技术来解决深度CNN中的梯度消失问题。在Pytorch中,我们可以使用ResNet模型来构建ResNet网络。 ResNet包括多个残差块,每个残差块由两个卷积层组成。其中,ResNet-152ResNet的一个具体实现,它包含152层。在Pytorch中,我们可以使用torchvision.models模块来实现ResNet-152。 以下是使用Pytorch实现ResNet-152的示例代码: ```python import torch import torchvision.models as models # 加载预训练的ResNet-152模型 resnet152 = models.resnet152(pretrained=True) # 将模型设置为评估模式 resnet152.eval() # 输入图像的尺寸为224x224 input_size = (3, 224, 224) input_tensor = torch.randn(1, *input_size) # 将输入传递给ResNet-152 output = resnet152(input_tensor) # 输出结果的形状 print(output.shape) ``` 在上述示例中,我们使用torchvision.models模块中的resnet152函数来加载预训练的ResNet-152模型。然后,我们将模型设置为评估模式,并创建一个随机输入张量作为示例输入。最后,我们将输入传递给ResNet-152模型并输出结果的形状。 请注意,加载预训练的模型可能需要一些时间,具体取决于网络连接和计算设备的性能。 : 使用Pytorch实现Resnet网络模型:ResNet50ResNet101ResNet152 [2]: 但是当我们继续向神经网络添加更多层时,训练变得非常困难,并且模型的准确性开始饱和,然后也会下降。ResNet 将我们从这种情况中解救出来,并帮助解决了这个问题。 : ResNet 中的这些跳跃连接技术通过允许梯度流过的替代捷径来解决深度 CNN 中梯度消失的问题,此外,如果任何层损害了架构的性能,则跳过连接会有所帮助,那么它将被正则化跳过。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

胖墩会武术

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

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

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

打赏作者

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

抵扣说明:

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

余额充值