当前位置:网站首页>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 xThe 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])
边栏推荐
- LayaBox---TypeScript---首次接触遇到的问题
- Spss-系统聚类软件实操
- C语言小笔记+题
- [Data Mining] Written Exam Questions for Sohu Data Mining Engineers
- js的new Function()常用方法
- dotnet delete read-only files
- MySQL stored procedure introduction, creation, case, delete, view "recommended collection"
- [2022 Hangzhou Electric Power Multi-School 5 1012 Questions Buy Figurines] Application of STL
- MATLAB中readtimetable函数用法
- for 循环中的 ++i 与 i++
猜你喜欢

STM32MP157A驱动开发 | 01- 板载LED作为系统心跳指示灯

【TypeScript】深入学习TypeScript枚举

IPV6地址

Interviewer: How is the expired key in Redis deleted?
![[Data Mining] Written Exam Questions for Sohu Data Mining Engineers](/img/d9/450eeecd5c7835d40ac38da41fc08e.png)
[Data Mining] Written Exam Questions for Sohu Data Mining Engineers

无代码平台字段设置:基础设置入门教程
【一起学Rust | 进阶篇 | Service Manager库】Rust专用跨平台服务管理库

OD-Model【6】:YOLOv2

大资本已开始逃离加密领域?

SPSS-System Clustering Hand Calculation Practice
随机推荐
JWT主动校验Token是否过期
括号匹配
[AGC] Build Service 1 - Cloud Function Example
MySQL stored procedure introduction, creation, case, delete, view "recommended collection"
知识分享|如何设计有效的帮助中心,不妨来看看以下几点
C语言小笔记+题
【手把手教你使用STM32HAL库的串口空闲中断】
如何进行AI业务诊断,快速识别降本提效增长点?
【debug】postgres数据存储错乱
moke、动态图片资源打包显示
dotnet compress Stream or file using lz4net
Win10 uwp use ScaleTransform magnify an element
PowerCLi 导入License到vCenter 7
[TypeScript] In-depth study of TypeScript enumeration
Interviewer: How is the expired key in Redis deleted?
【编程思想】
88. (the home of cesium) cesium polymerization figure
工龄10年的测试员从大厂“裸辞”后...
深度解析:为什么跨链桥又双叒出事了?
简述@RequestParam与@RequestBody参数注解