当前位置:网站首页>Hands-on Deep Learning_NiN
Hands-on Deep Learning_NiN
2022-08-04 21:08:00 【CV Small Rookie】
LeNet, AlexNet and VGG all share a common design pattern: extract spatial structure features through a series of convolutional layers and pooling layers; and then process the representation of features through fully connected layers.The improvement of LeNet by AlexNet and VGG mainly lies in how to expand and deepen these two modules.
However, if fully connected layers are used, the spatial structure of the representation may be discarded entirely.The network in network (NiN) provides a very simple solution: use a multi-layer perceptron on each pixel channel (in fact, add two layers of 1 x 1 convolution, because as mentioned earlier, 1 x 1The convolution is equivalent to a parameter-sharing MLP)
As you can see from the diagram, the NiN network is composed of nin_blocks, and a nin_block consists of a convolutional layer + two
1 x 1 convolution composition:
The final output cancels the use of MLP, but uses a global Pooling to change the height and width of the feature map to 1, and finally uses Flatten to flatten to get the output.
def nin_block(in_channels, out_channels, kernel_size, strides, padding):return nn.Sequential(nn.Conv2d(in_channels, out_channels, kernel_size, strides, padding),nn.ReLU(),nn.Conv2d(out_channels, out_channels, kernel_size=1), nn.ReLU(),nn.Conv2d(out_channels, out_channels, kernel_size=1), nn.ReLU())class NiN(nn.Module):def __init__(self):super(NiN, self).__init__()self.model =nn.Sequential(nin_block(1, 96, kernel_size=11, strides=4, padding=0),nn.MaxPool2d(3, stride=2),nin_block(96, 256, kernel_size=5, strides=1, padding=2),nn.MaxPool2d(3, stride=2),nin_block(256, 384, kernel_size=3, strides=1, padding=1),nn.MaxPool2d(3, stride=2),nn.Dropout(0.5),# The number of tag categories is 10nin_block(384, 10, kernel_size=3, strides=1, padding=1),nn.AdaptiveAvgPool2d((1, 1)),# Convert the 4D output to a 2D output with shape (batch size, 10)nn.Flatten())def forward(self,x):x = self.model(x)return x
The size of the output of each layer:
Sequential output shape: torch.Size([1, 96, 54, 54])MaxPool2d output shape: torch.Size([1, 96, 26, 26])Sequential output shape: torch.Size([1, 256, 26, 26])MaxPool2d output shape: torch.Size([1, 256, 12, 12])Sequential output shape: torch.Size([1, 384, 12, 12])MaxPool2d output shape: torch.Size([1, 384, 5, 5])Dropout output shape: torch.Size([1, 384, 5, 5])Sequential output shape: torch.Size([1, 10, 5, 5])AdaptiveAvgPool2d output shape: torch.Size([1, 10, 1, 1])Flatten output shape: torch.Size([1, 10])
边栏推荐
- proe和creo的区别有哪些
- 【学术相关】清华教授发文劝退读博:我见过太多博士生精神崩溃、心态失衡、身体垮掉、一事无成!...
- 大资本已开始逃离加密领域?
- 深度解析:为什么跨链桥又双叒出事了?
- 动手学深度学习_NiN
- 2、字符集-编码-解码
- Zero-knowledge proof notes - private transaction, pederson, interval proof, proof of ownership
- 【debug】postgres数据存储错乱
- Big capital has begun to flee the crypto space?
- After encountering MapStruct, the conversion between PO, DTO and VO objects is no longer handwritten
猜你喜欢
如何进行AI业务诊断,快速识别降本提效增长点?
Five Minutes Introductory Text Processing Three Musketeers grep awk sed
88. (the home of cesium) cesium polymerization figure
知识分享|如何设计有效的帮助中心,不妨来看看以下几点
大资本已开始逃离加密领域?
Getting Started with Lattice Passwords
Using Baidu EasyDL to realize forest fire early warning and identification
Oreo domain name authorization verification system v1.0.6 public open source version website source code
[2022 Hangzhou Electric Power Multi-School 5 1012 Questions Buy Figurines] Application of STL
实战:10 种实现延迟任务的方法,附代码!
随机推荐
帝国CMS仿核弹头H5小游戏模板/92game帝国CMS内核仿游戏网整站源码
OD-Model【6】:YOLOv2
Using Baidu EasyDL to realize forest fire early warning and identification
C语言之实现扫雷小游戏
伺服电机矢量控制原理与仿真(1)控制系统的建立
明明加了唯一索引,为什么还是产生了重复数据?
web漏洞扫描器-awvs
visual studio 2015 warning MSB3246
如何最简单、通俗地理解爬虫的Scrapy框架?
暴雨中的人
Zero-knowledge proof notes - private transaction, pederson, interval proof, proof of ownership
Oreo domain name authorization verification system v1.0.6 public open source version website source code
【一起学Rust | 进阶篇 | Service Manager库】Rust专用跨平台服务管理库
Spss-系统聚类手算实操
for 循环中的 ++i 与 i++
After encountering MapStruct, the conversion between PO, DTO and VO objects is no longer handwritten
SAP ABAP OData 服务如何支持 $select 有选择性地仅读取部分模型字段值试读版
两种白名单限流方案(redis lua限流,guava方案)
[AGC] Build Service 1 - Cloud Function Example
[21天学习挑战赛——内核笔记](二)——设备树基础