ResNet学习介绍

前言

最近在看有关ASSD目标检测的论文,其中提到使用ResNet101作为整个模型的主干网络,于是我就想着干脆把ResNet先通俗理解一遍,再进行下一步的ASSD模型的理解(ps:仅供参考,如有误解,还望指出)。

ResNet概述

在弄懂ResNet101之前,得先搞清楚什么是ResNet?(简单也很实用!)

ResNet是一种残差网络(Residual Network),残差指的就是观测值与预测值之间的差,对于残差网络,作者是这样表述的:一层网络可以看做y = H(x),而残差网络的一个残差块可以表示为H(x)= F(x) + x,从而残差F(x) = H(x) - x,在单位映射中,y=x便是观测值,而H(x)是预测值。其实我们可以把残差网络看作是一个子网络,通过对其不断堆砌而构成一个很深的网络。
在这里插入图片描述
在ResNet中提出了两种mapping(映射层),一个是identity mapping(恒等映射层:输入等于输出,其实指的就是本身y = x),其实就是上图中的x,另一个就是residual mapping(残差映射,其实指的是差:H(x) - x),其实就是F(x)。这个结构使用了一种连接方法叫shortcut connection或skip connections,按照中文意思就是

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ResNet18是一个经典的深度卷积神经网络模型,由微软亚洲研究院提出,用于参加2015年的ImageNet图像分类比赛。ResNet18的名称来源于网络中包含的18个卷积层。 ResNet18的主要特点是引入了残差块(Residual Block)的概念,用于解决深度卷积神经网络中梯度消失和梯度爆炸问题。在残差块中,跳跃连接(Shortcut Connection)可以将输入直接连接到输出,使得网络可以学习到残差信息,从而更好地进行特征提取和处理。 ResNet18的结构相对较浅,适合用于处理中等规模的图像分类任务。它在ImageNet数据集上取得了很好的性能,并且被广泛应用于计算机视觉领域的各种任务,如目标检测、图像分割等。 以下是一个使用ResNet18进行图像分类的示例代码: ```python import torch import torchvision.models as models # 加载预训练的ResNet18模型 resnet18 = models.resnet18(pretrained=True) # 输入图像预处理 preprocess = transforms.Compose([ transforms.Resize(256), transforms.CenterCrop(224), transforms.ToTensor(), transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]) ]) # 加载图像 image = Image.open('image.jpg') # 对图像进行预处理 input_tensor = preprocess(image) input_batch = input_tensor.unsqueeze(0) # 将输入数据传入模型进行推理 with torch.no_grad(): output = resnet18(input_batch) # 获取预测结果 _, predicted_idx = torch.max(output, 1) predicted_label = labels[predicted_idx.item()] print("Predicted label: ", predicted_label) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值