文章目录

  • 1. AlexNet 简介
  • 2. AlexNet 的 PyTorch 实现

1. AlexNet 简介

  2006 年,研究人员成功利用 GPU 加速 CNN,相比 CPU 快了 4 倍。2012 年,由谷歌 Hinton 率领的团队提出新的卷积神经网络 AlexNet,在 ImageNet 2012 的图片分类任务上,以 15.3% 的错误率登顶,而且以高出第二名十几个百分点的差距吊打所有其他参与者。论文为《ImageNet Classification with Deep Convolutional Neural Networks》。AlexNet 的出现标志着神经网络的复苏和深度学习的崛起。

  AlexNet 的网络结构跟 LeNet 类似,但使⽤了更多的卷积层和更⼤的参数空间来拟合⼤规模数据集 ImageNet。AlexNet 是浅层神经⽹络和深度神经⽹络的分界线,其网络结构如下

上图分为上下两个部分的网络,分别对应两个 GPU,只有到特定的网络层后才进行两块 GPU 间的交互,这种设置是为了利用两块 GPU 来提高运算的效率,其实两部分网络的结构差异不大。为便于理解,下文便选择一部分的网络 (一块 GPU 上) 进行介绍。单部分的网络结构如下

如上图所示,网络总共 8 层,包含 5 层卷积和 3 层全连接层。有关各层的详细介绍参见下图

  与 LeNet 相比,AlexNet 的卷积/池化操作没有太大变化,不过网络层数有所加深。AlexNet 的主要特点有

  1. 成功使用 ReLU 作为激活函数,成功解决了Sigmoid 在网络较深时的梯度弥散问题。
  2. 使用了数据增强
  3. 使用了小批量随机梯度下降法 (mini-batch SGD)。
  • GPU 上训练,这得益于 2006 年 CNN 在 GPU 上的实现。。
  • 训练时使用 Dropout 随机忽略一部分神经元,以避免模型过拟合。
  • 提出了局部响应归一化 (LRN) 层,对局部神经元的活动创建竞争机制,增强响应较大的神经元,抑制反馈较小的神经元,提高了模型的泛化能力。如今这部分工作多用 BN 替代。
  • 使用重叠的最大池化。此前普遍使用平均池化,而最大池化能够避免平均池化的模糊化效果。此外,AlexNet 提出设置步长小于池化核的尺寸,让池化层的输出之间出现重叠和覆盖,提升特征的丰富性。

2. AlexNet 的 PyTorch 实现

import time
import torch
from torch import nn, optim
import torchvisionclass AlexNet(nn.Module):def __init__(self):super(AlexNet, self).__init__()self.conv = nn.Sequential(nn.Conv2d(1, 96, 11, 4), # in_channels, out_channels, kernel_size, stride, paddingnn.ReLU(),nn.MaxPool2d(3, 2), # kernel_size, stride# 减小卷积窗口,使用填充为2来使得输入与输出的高和宽一致,且增大输出通道数nn.Conv2d(96, 256, 5, 1, 2),nn.ReLU(),nn.MaxPool2d(3, 2),# 连续3个卷积层,且使用更小的卷积窗口。除了最后的卷积层外,进一步增大了输出通道数。# 前两个卷积层后不使用池化层来减小输入的高和宽nn.Conv2d(256, 384, 3, 1, 1),nn.ReLU(),nn.Conv2d(384, 384, 3, 1, 1),nn.ReLU(),nn.Conv2d(384, 256, 3, 1, 1),nn.ReLU(),nn.MaxPool2d(3, 2))# 这里全连接层的输出个数比LeNet中的大数倍。使用丢弃层来缓解过拟合self.fc = nn.Sequential(nn.Linear(256*5*5, 4096),nn.ReLU(),nn.Dropout(0.5),nn.Linear(4096, 4096),nn.ReLU(),nn.Dropout(0.5),# 输出层。由于这里使用Fashion-MNIST,所以用类别数为10,而非论文中的1000nn.Linear(4096, 10),)def forward(self, img):feature = self.conv(img)output = self.fc(feature.view(img.shape[0], -1))return output

【参考】

  1. CNN发展简史——AlexNet(二);
  2. 卷积神经网络之Alexnet;

AlexNet 神经网络相关推荐

  1. m基于AlexNet神经网络和GEI步态能量图的步态识别算法MATLAB仿真

    目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 AlexNet是2012年ImageNet竞赛冠军获得者Hinton和他的学生Alex Krizhe ...

  2. 利用keras搭建AlexNet神经网络识别kaggle猫狗图片

    AlexNet结构 keras代码 from PIL import Image import numpy as np from keras.utils import to_categoricalpat ...

  3. 4-1 AlexNet神经网络

  4. alexnet 结构_AlexNet的体系结构和实现

    alexnet 结构 In my last blog, I gave a detailed explanation of the LeNet-5 architecture. In this blog, ...

  5. karas + opencv 实现AlexNet神经网络应用于图像分类

    一.序言 本项目环境 python 3.8,keras 2.6.0,opencv 4.5.4.58,tensorflow 2.6.0,使用pycharm编译器. 意在使用现有主流框架实现AlexNet ...

  6. 理解一个AlexNet的训练代码

    AlexNet的代码:pytorch实现AlexNet 学了一下tmux的使用tmux命令,不然连接一断就没了. 一.TMUX的常用命令 新建tmux会话: tmux 没有名字,默认代号为0开始 tm ...

  7. 一次对语音技术的彻底批判

    作者 | Alexander Veysov 译者 | 孙薇,编辑 | 夕颜 出品 | AI科技大本营(ID:rgznai100) ImageNet的出现带来计算机视觉领域的突破发展,掀起了一股预训练之 ...

  8. 深度学习在目标视觉检测中的应用进展与展望

    作者:张慧,王坤峰,王飞跃 来源:王飞跃科学网博客 摘要:目标视觉检测是计算机视觉领域的一个重要问题,在视频监控.自主驾驶.人机交互等方面具有重要的研究意义和应用价值.近年来,深度学习在图像分类研究中 ...

  9. 计算机视觉大作业 抓取手势类型集_CS231n第一周[任务1]计算机视觉发展历史以及一些计算机视觉任务概念...

    1.任务简介 1.2.3课时视频 课程学习链接: 2017CS231n 斯坦福李飞飞计算机视觉识别_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.com 2.任务详解: ...

最新文章

  1. 几种常用编程语言的编程思想和方法 转
  2. Windows系统下使用protobuf:protobuf的简介、安装、使用方法之详细攻略
  3. Python教程:多态与多态性
  4. COLING 2018 最佳论文解读:序列标注经典模型复现
  5. 【汇编优化】之CPUID获取x86处理器信息
  6. 二叉搜索树(HDU3791)
  7. 西门子step7安装注册表删除_西门子step7及软件包的完全卸载方法
  8. ZigBee协议栈的串口实验
  9. 电视动态测试软件,[4K演示] 你的电视能顶得住吗?精神污染MAX的SONY4K动态测试......
  10. 全球与中国椎弓根螺钉固定市场深度研究分析报告
  11. 《惢客创业日记》2021.01.21(周四)什么是产品逻辑?
  12. Word处理控件Aspose.Words功能演示:从 Java 中的 Word 文档中提取图像
  13. Redis(一)数据结构解析
  14. Maven进阶(高级部分)
  15. MEM/MBA 写作-论证有效性分析(09)逻辑缺陷-误用百分数滑坡谬误
  16. requests模块的异常处理
  17. 计算机网络第七版 谢希仁 3-33答案
  18. 拼多多的店铺怎样引流和出价-纽黑文教学
  19. 自顶向下计算机网络 传输层
  20. gazebo仿真 UR10 + robotiq140抓取物体失败:滑出或滑落

热门文章

  1. 发现孩子用计算机,了解儿童用脑特点后发现:拥有一个高机能的计算机式头脑原来不难!...
  2. Oracle和Java数据类型对应关系
  3. 我的淘宝 快乐岛主外挂的制作经历
  4. Win10+Ubuntu18.04 亲测UEFI启动模式双硬盘+双系统成功安装经验
  5. ACL 通配符掩码的应用
  6. 面试官是小我3岁的未来领导,瞬间不想去!
  7. 【练习题】20道HTML测试题
  8. linux僵尸进程defunct
  9. 计算机职称考试临时身份证不能用?
  10. 沁恒 CH32V003J4M6 开发测试