CV学习笔记-Alexnet

简介: CV学习笔记-Alexnet

Alexnet

1. 背景

AlexNet是2012年ImageNet竞赛冠军获得者Hinton和他的学生Alex Krizhevsky设计的。也是在那年之后,更多的更深的神经网络被提出。

2018122814580746.png

2. 网络结构

原网络结构:

2018122814580746.png

这个原述解释的是上面一半与下面一半分别跑在不同的GPU上,所以将原生网络简化成下面结构,来具体看看中间的过程如何计算。

2018122814580746.png

详解:

输入接收一个三通道的二维224 × 224矩阵,故而原始输入图片输入网络应当先进行处理,resize到(224,224,3)。

使用步长为4 × 4,大小为11 × 11的卷积核对图像进行卷积,输出的特征(feature map)为96层(也即输出有96个通道)

详细计算方式在笔者的前一篇文章已有介绍,此处作推演。

输出的通道数与卷积核的个数(3通道,卷积核的通道数与原输入通道数应为一致)一致,所以输出通道数经过卷积操作是可以人为定义的。这里使用了96个11×11卷积核进行了卷积,输出为55×55×96,55怎么算来的呢,使用了公式N=(W-F+2P)/S + 1,W为输入大小,F为卷积核大小,P为填充值大小,S为步长大小,代入公式可得,N=(224-55+2 × 0)/4 +1=54,很多层都进行了LRN操作,可参考《深度学习饱受争议的局部响应归一化(LRN)详解》,笔者在这里就不作介绍了

然后进入池化操作,池化操作不改变输出通道数,池化的pool_size为3 ×3,故而输出大小为(55-3)/2+1=27,故最终输出为27 × 27 × 96

然后经过same方式padding后,用5 × 5的卷积核进行了卷积操作,输出通道为256,same方式下经过计算输出为⌈ 27 /1 ⌉ = 27 ,输出大小不变,故最终输出为27 × 27 × 256

image.png

然后使用3 ×3的窗口,以步长为2 × 2的窗口进行最大池化操作,池化不改变通道数,输出为(27-3+0)/2 + 1 = 13,故输出大小为13 × 13 × 256,然后再经过same方式加padding,输出为⌈ 13 /1 ⌉ = 13 输出通道指定为384,也即用了384个3 × 3 的卷积核(卷积核个数等于输出通道数),最终输出为13 × 13 × 384 。然后保持384的输出通道不变,加一圈padding(即P=1),用3 × 3的卷积核进行卷积,输出为(13-3+2)/1 + 1 = 13,故最终输出为13 × 13 × 384 然后设置输出通道为256,加一圈padding(即P=1),用3 × 3的卷积核进行卷积,输出为(13-3+2)/1 + 1 = 13,故最终输出为13 × 13 × 256 然后使用3 × 3的窗口大小、2 × 2的步长进行最大池化操作,池化不改变通道数,通道数仍为256,输出为(13-3+0)/2 + 1 = 6,故最终输出为6 × 6 × 256

由于FC(全连接层)只接收一维向量,故需要将6 × 6 × 256 转换成1 × 1 × 9216的向量,输入为9216个参数,这个过程形象的成为拍扁的过程,原理是用与原featuremap大小相同的卷积核进行卷积,个数即输出通道数,然后经过三层FC,再通过softmax分类器进行分类,softmax的输出个数即你要分的类别数,FC层中的过程相当于用1 ×  1的卷积核进行卷积的过程。



相关文章
|
编解码 API 数据安全/隐私保护
FFmpeg中overlay滤镜用法-水印及画中画
overlay 技术又称视频叠加技术。overlay 视频技术使用非常广泛,常见的例子有,电视屏幕右上角显示的电视台台标,以及画中画功能。画中画是指在一个大的视频播放窗口中还存在一个小播放窗口,两个窗口不同的视频内容同时播放。
2559 0
FFmpeg中overlay滤镜用法-水印及画中画
|
11月前
|
机器学习/深度学习 人工智能 量子技术
量子计算的商业化前景:未来科技的颠覆性力量
量子计算的商业化前景:未来科技的颠覆性力量
592 17
|
Java
Java的封装详解
封装是Java中实现数据隐藏和保护的核心机制。它通过将对象的状态和行为结合并限制外部直接访问,确保类的内部细节对外不可见,仅能通过公共方法访问和修改对象状态。封装带来了数据隐藏、提高代码可维护性和增强安全性等好处。在Java中,封装主要通过将属性设为私有并提供getter和setter方法来实现。这种方式不仅保护了数据完整性,还允许在修改类内部实现时不影响外部代码,从而提升程序的健壮性和可读性。
686 80
|
机器学习/深度学习 数据采集
R语言逻辑回归、GAM、LDA、KNN、PCA主成分分类分析预测房价及交叉验证
上述介绍仅为简要概述,每个模型在实施时都需要仔细调整与优化。为了实现高度精确的预测,模型选择与调参是至关重要的步骤,并且交叉验证是提升模型稳健性的有效途径。在真实世界的房价预测问题中,可能还需要结合地域经济、市场趋势等宏观因素进行综合分析。
395 3
|
机器学习/深度学习 算法 大数据
Vision Transformer 必读系列之图像分类综述(三): MLP、ConvMixer 和架构分析(下)
在 Vision Transformer 大行其道碾压万物的同时,也有人在尝试非注意力的 Transformer 架构(如果没有注意力模块,那还能称为 Transformer 吗)。这是一个好的现象,总有人要去开拓新方向。相比 Attention-based 结构,MLP-based 顾名思义就是不需要注意力了,将 Transformer 内部的注意力计算模块简单替换为 MLP 全连接结构,也可以达到同样性能。典型代表是 MLP-Mixer 和后续的 ResMLP。
1535 0
Vision Transformer 必读系列之图像分类综述(三): MLP、ConvMixer 和架构分析(下)
|
人工智能 BI
区间问题之区间覆盖(看一遍就会系列)
区间问题之区间覆盖(看一遍就会系列)
|
开发工具 git
百度搜索:蓝易云【git常用命令stash详细解释。】
使用 `stash`命令可以在处理多个分支切换或者保存临时修改时非常有用。你可以通过 `stash`命令保存当前工作目录的修改,切换到其他分支或者应用其他更改,然后再返回并应用之前保存的stash。这样可以确保你的工作目录始终保持干净,并且不会丢失任何重要的修改。
598 4
|
SQL 测试技术 索引
SQL Server 临时表和表变量系列之踢馆篇
# 摘要 在面对SQL Server选择使用临时表还是表变量作为数据暂存问题时,有一个非常重要的选择标准便是性能,两者对于查询语句和DML性能表现到底如何呢?我相信,很多人的认识是片面的,或者是错误的。这里以一篇引用率很高的文章来作为反面教材来纠正那些片面和错误的认识,我暂且称之为“踢馆”。 # 背景 在研究临时表和表变量该如何选择的时候,一篇文章叫着[SQL Server Temp Tab
3514 0
|
存储 安全 数据建模
数据库——数据模型
数据库——数据模型
1220 0
|
数据采集 编解码 数据处理
【核磁共振成像】单射成像和高速脉冲序列
【核磁共振成像】单射成像和高速脉冲序列