IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> CV学习笔记-Alexnet -> 正文阅读

[人工智能]CV学习笔记-Alexnet

Alexnet

1. 背景

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2b8DWrWq-1644766402742)(./imgs/image-20220124173246167.png)]

2. 网络结构

原网络结构:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UqWJ2aWj-1644766402743)(./imgs/format,png)]

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ceok64pF-1644766402744)(./imgs/image-20220124173335247.png)]

详解:

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

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

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

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

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

  • 然后经过same方式padding后,用5 × \times × 5的卷积核进行了卷积操作,输出通道为256,same方式下经过计算输出为 ? 27 1 ? = 27 \lceil \frac{27}{1} \rceil = 27 ?127??=27,输出大小不变,故最终输出为 27 × 27 × 256 27 \times 27 \times 256 27×27×256

    一般深度学习框架中的padding填充方式有两种,same和vaild,same方式下,尽量保持输出与输入大小一致(不含通道数),是根据上述计算公式进行反推P值,以决定外围加几圈0,则输出大小为 N = ? W S ? N =\lceil \frac{W}{S} \rceil N=?SW??

    valid方式时指定P=0,则输出大小为 N = ? W ? F + 1 S ? N = \lceil \frac{W-F+1}{S}\rceil N=?SW?F+1??

    对比:valid方式表示只进行有效的卷积,对边界数据不处理;same代表保留边界处的卷积结果,通常会导致输出shape与输入shape相同

  • 然后使用3 × \times × 3的窗口,以步长为2 × \times × 2的窗口进行最大池化操作,池化不改变通道数,输出为(27-3+0)/2 + 1 = 13,故输出大小为 13 × 13 × 256 13 \times 13 \times 256 13×13×256

  • 然后再经过same方式加padding,输出为 ? 13 1 ? = 13 \lceil \frac{13}{1} \rceil = 13 ?113??=13输出通道指定为384,也即用了384个 3 × 3 3 \times 3 3×3的卷积核(卷积核个数等于输出通道数),最终输出为 13 × 13 × 384 13 \times 13 \times 384 13×13×384

  • 然后保持384的输出通道不变,加一圈padding(即P=1),用3 × \times × 3的卷积核进行卷积,输出为(13-3+2)/1 + 1 = 13,故最终输出为 13 × 13 × 384 13 \times 13 \times 384 13×13×384

  • 然后设置输出通道为256,加一圈padding(即P=1),用3 × \times × 3的卷积核进行卷积,输出为(13-3+2)/1 + 1 = 13,故最终输出为 13 × 13 × 256 13 \times 13 \times 256 13×13×256

  • 然后使用3 × \times × 3的窗口大小、2 × \times × 2的步长进行最大池化操作,池化不改变通道数,通道数仍为256,输出为(13-3+0)/2 + 1 = 6,故最终输出为 6 × 6 × 256 6 \times 6 \times 256 6×6×256

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


个人学习笔记,仅交流学习,转载请注明出处!

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-02-14 21:08:29  更:2022-02-14 21:09:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 19:33:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码