当前位置: 首页 > news >正文

ResNet网络

ResNet网络

一.手写ResNet网络

(1)对于残差块有两种:

1.有1*1卷积层

Y=Y+conv_1x1(X)

2.无1*1卷积层

Y=Y+X

image

(2)整体ResNet架构

image

import torch
from d2l import torch as d2l
from torch import nn
from torch.nn import functional as F
#1.单个ResNet块(残差块)
class Residual(nn.Module):#每个残差快包含两个卷积层def __init__(self,in_chanels,out_chanels,use_1x1convd=False,strides=1):super().__init__()if use_1x1convd==True:#用了1*1卷积层self.conv1x1=nn.Conv2d(in_chanels,out_chanels,1,stride=strides)else:self.conv1x1 =None#没用1*1卷积层#卷积层self.convd1=nn.Conv2d(in_chanels,out_chanels,3,padding=1,stride=strides)self.convd2=nn.Conv2d(out_chanels,out_chanels,3,padding=1)#批量归一化层self.bn1=nn.BatchNorm2d(out_chanels)self.bn2=nn.BatchNorm2d(out_chanels)def forward(self,X):#前向函数Y=F.relu(self.bn1(self.convd1(X)))Y=self.bn2(self.convd2(Y))if self.conv1x1 is not None:X=self.conv1x1(X)Y=Y+Xreturn F.relu(Y)
#ResNet网络构造(有5个stage)
b1=nn.Sequential(nn.Conv2d(1,64,7,2,3),nn.BatchNorm2d(64),nn.ReLU(),nn.MaxPool2d(3,2,1)
)
#多个残差块连接
def resnet_block(in_chanels,outchanels,num_residuals,first_block=False):#残差块数blk=[]for i in range(num_residuals):if i==0 and first_block==False:#通道数*2,高宽减半blk.append(Residual(in_chanels,outchanels,use_1x1convd=True,strides=2))else:blk.append(Residual(outchanels,outchanels))#通道数不变,高宽不变return blk
b2=nn.Sequential(*resnet_block(64,64,2,first_block=True)#通道数不变,高宽不变
)
#下面几步的第一块都要通道数*2
b3=nn.Sequential(*resnet_block(64,128,2)
)
b4=nn.Sequential(*resnet_block(128,256,2 )
)
b5=nn.Sequential(*resnet_block(256,512,2)
)
net=nn.Sequential(b1,b2,b3,b4,b5,nn.AdaptiveAvgPool2d((1,1)),#表示输出特征图的空间尺寸为 1x1(即高 = 1,宽 = 1)。例如:若输入是 (512, 7, 7)(通道数 = 512,高 = 7,宽 = 7),经过该层后会输出 (512, 1, 1)。若输入是 (512, 14, 14),输出仍为 (512, 1, 1)。nn.Flatten(),nn.Linear(512,10)
)
X=torch.rand((1,1,224,224))
for layer in net:X=layer(X)print(layer.__class__.__name__,X.shape)

 

http://www.rkmt.cn/news/23670.html

相关文章:

  • 079_尚硅谷_双分支基本使用
  • nextcloud安装部署与升级
  • 在运维工作中,在k8s集群使用命令查看etcd集群状态
  • 常见的动态规划模型的初始化总结
  • 数论-supergcd
  • Spring Boot框架常见问题
  • C# - Socket 基础指南
  • XSS检测绕过(UTF-7编码绕过)
  • Java平台的SQL监控组件
  • 2025 年互联网推广公司推荐:北京蓝海引擎科技,为中小企业提供智能化数字营销解决方案
  • Android 网络请求:多功能网络请求库
  • 2025 年最新推荐!污水处理设备优质厂家排行榜,帮企业避开劣质产品选到高效靠谱设备
  • 2025 年最新推荐真空炉制造厂家榜单:覆盖高温烧结 / 真空退火 / 智能铍铜炉,助力企业精准选型
  • 2025 测量仪器厂家最新推荐榜单:国产新锐与领军品牌深度解析,精准匹配工业科研需求
  • 用java打印Hello World
  • 2025年10月市场地位认证机构推荐榜:尚普与华信人深度对比评测
  • 2025年10月智能体公司推荐榜单:五强对比与中立评测助您精准选型
  • 优化电商包装的机器学习模型解析
  • 2025年10月项目管理工具推荐榜单:基于真实数据的中立对比与选购指南
  • 2025年10月止痒控油洗发水推荐榜:十款热门单品多维对比与中性选购指南
  • 芯片集成
  • 物联网平台选择之思辨
  • 2025年10月ai优化推荐榜:基于全平台实测数据的中立对比与选购指南
  • 2025年10月AI搜索优化推荐榜单:基于全平台实测数据的中立对比与决策指南
  • 2025年10月豆包关键词排名优化推荐对比榜:企业选购的客观决策参考
  • php数据验证 + 过滤 + 参数绑定
  • Microsoft AI Genius | 用 MCP 解锁实时数据,重新定义交互边界
  • 8线程的8皇后程序
  • 2025年拉链厂家推荐排行榜,TAB拉链,大棕拉链,金属拉链,树脂拉链,服装拉链,尼龙拉链,防水拉链,隐形拉链,男装拉链,女装拉链公司推荐榜!
  • 2025年10月geo优化服务商推荐榜单:基于全平台实测数据的中立对比与避坑指南