AlexNet 2012
AlexNet
Alexnet是一年一度的ImageNet大型视觉识别挑战赛(ILSVRC)2012年冠军,ILSVRC使用ImageNet的一个子集,分为1000种类别,每种类别中都有大约1000张图像,大约有120万张训练图像,50,000张验证图像和150,000张测试图像。 Alexnet共有600000000训练参数和650000神经元。
基本结构
卷积层:5层
全连接层:3层
深度:8层
参数个数:60M
神经元个数:650k
分类数目:1000类
Conv1:输入图像规格:224*224*3
padding之后为227*227*3
Kernel size:11*11*3 stride:4 num_output:96
New_feture_size=(img_size-filter_size)/stride+1
(227-11)/4+1=55
输出:55*55*96(290400)
激活函数Relu以后输出的还是55*55*96
Maxpooling:kernel size:3*3 stride:2
(55-3)/2+1=27
输出:27*27*96
局部相应归一化后输出的还是27*27*96,分为两组,
每组分别为(27*27*48)
训练参数:96*11*11*3=34848
Conv2:输入图像规格:27*27*96 padding:2
Kernel size:5*5*48 stride:1 num_output:256
(27-5+2*2)/1+1=27
输出:两组27*27*128
激活函数Relu以后输出的还是27*27*128
Maxpooling:kernel size:3*3 stride:2
(27-3)/2+1=13
输出:两组13*13*128
归一化后输出的还是两组13*13*128
训练参数:256*5*5*48=307200
Conv3:
输入规格:两组13*13*128 padding:1
Kernel size:3*3*256 stride:1 num_output:192
(13-3+1*2)/1+1=13
输出:两组13*13*192
通过激活函数还是输出:两组13*13*192
训练参数:384*3*3*256=884736
Conv4:
输入规格:两组13*13*192 padding:1
Kernel size:3*3*192 stride:1 num_output:192
(13-3+1*2)/1+1=13
输出:两组13*13*192
通过激活函数还是输出:两组13*13*192
训练参数:384*3*3*192=663552
Conv5:
输入规格:两组13*13*192 padding:1
Kernel size:3*3*192 stride:1 num_output:128
(13-3+1*2)/1+1=13
输出:两组13*13*128
通过激活函数还是输出:两组13*13*128
Pooling:kernel size:3*3 stride:2
(13-3)/2+1=6
输出:两组6*6*128
训练参数:256*3*3*192=442368
FC6 全连接层:
输入规格:两组6*6*128
Kernel size:6*6*256
通过4096个神经元输出运算结果,这4096个运算结果通过relu激活函数生成4096个值,并通过drop运算后输出4096个本层结果
dropout:通过定义的概率来随机删除一些神经元,同时保持输入层与输出层神经元不变
训练参数:4096*6*6*256=37748736
FC7:第六层输出的4096个数据与第七层的4096个神经元进行全连接,
然后经由relu7进行处理后生成4096个数据,
再经过dropout7处理后输出4096个数据。
训练参数:4096*4096=16777216
FC8:第七层输出的4096个数据与第八层的1000个神经元进行全连接
训练参数:4096*1000=4096000
import torch.nn as nn
import torch.utils.model_zoo as model_zoo # __all__ = ['AlexNet', 'alexnet']
#
#
# model_urls = {
# 'alexnet': 'https://download.pytorch.org/models/alexnet-owt-4df8aa71.pth',
# }
# 在PyTorch中, 类nn.Conv2d()是卷积核模块。卷积核及其调用例子如下:
#
# nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0,dilation=1,groups=1, bias=True)
# nn.MaxPool2d(kernel_size, stride=None, padding=0, dilation=1, class AlexNet(nn.Module): def __init__(self,num_classes=1000):
super(AlexNet, self).__init__()
self.features = nn.Sequential(
nn.Conv2d(3, 96, kernel_size=11, stride=4),
nn.ReLU(inplace=True),
nn.MaxPool2d(kernel_size=3, stride=2), nn.Conv2d(96, 256, kernel_size=5, stride=1,padding=2),
nn.ReLU(inplace=True),
nn.MaxPool2d(kernel_size=3, stride=2), nn.Conv2d(256, 384, kernel_size=3, stride=1,padding=1),
nn.ReLU(inplace=True), nn.Conv2d(384, 384, kernel_size=3, stride=1, padding=1),
nn.ReLU(inplace=True), nn.Conv2d(384, 256, kernel_size=3,stride=1, padding=1),
nn.ReLU(inplace=True),
nn.MaxPool2d(kernel_size=3, stride=2),
)
self.classifier = nn.Sequential(
nn.Dropout(),
nn.Linear(256 * 6 * 6, 4096),
# 两组128,6,6
nn.ReLU(inplace=True),
nn.Dropout(),
nn.Linear(4096, 4096),
nn.ReLU(inplace=True),
nn.Linear(4096, num_classes),
) def forward(self, x):
x = self.features(x)
x = x.view(x.size(0), 256 * 6 * 6)
x = self.classifier(x)
return x alex=AlexNet()
print(alex) # def alexnet(pretrained=False, model_root=None, **kwargs):
# model = AlexNet(**kwargs)
# if pretrained:
# model.load_state_dict(model_zoo.load_url(model_urls['alexnet'], model_root))
# return model
AlexNet 2012的更多相关文章
- 从AlexNet(2012)开始
目录 写在前面 网络结构 创新点 其他有意思的点 参考 博客:blog.shinelee.me | 博客园 | CSDN 写在前面 本文重点在于回顾深度神经网络在CV领域的First Blood--A ...
- 学习笔记TF030:实现AlexNet
ILSVRC(ImageNet Large Scale Visual Recognition Challenge)分类比赛.AlexNet 2012年冠军(top-5错误率16.4%,额外数据15.3 ...
- TensorFlow实战之实现AlexNet经典卷积神经网络
本文根据最近学习TensorFlow书籍网络文章的情况,特将一些学习心得做了总结,详情如下.如有不当之处,请各位大拿多多指点,在此谢过. 一.AlexNet模型及其基本原理阐述 1.关于AlexNet ...
- CNN Architectures(AlexNet,VGG,GoogleNet,ResNet,DenseNet)
AlexNet (2012) The network had a very similar architecture as LeNet by Yann LeCun et al but was deep ...
- 深度学习方法(五):卷积神经网络CNN经典模型整理Lenet,Alexnet,Googlenet,VGG,Deep Residual Learning
欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.技术感兴趣的同学加入. 关于卷积神经网络CNN,网络和文献中 ...
- 图像分类丨ILSVRC历届冠军网络「从AlexNet到SENet」
前言 深度卷积网络极大地推进深度学习各领域的发展,ILSVRC作为最具影响力的竞赛功不可没,促使了许多经典工作.我梳理了ILSVRC分类任务的各届冠军和亚军网络,简单介绍了它们的核心思想.网络架构及其 ...
- CNN-2: AlexNet 卷积神经网络模型
1.AlexNet 模型简介 由于受到计算机性能的影响,虽然LeNet在图像分类中取得了较好的成绩,但是并没有引起很多的关注. 知道2012年,Alex等人提出的AlexNet网络在ImageNet大 ...
- (转)The 9 Deep Learning Papers You Need To Know About (Understanding CNNs Part 3)
Adit Deshpande CS Undergrad at UCLA ('19) Blog About The 9 Deep Learning Papers You Need To Know Abo ...
- ImageNet && 医学图像的识别
医学图像识别的问题 如果将CNN应用于医学图像,首要面对的问题是训练数据的缺乏.因为CNN的训练数据都需要有类别标号,这通常需要专家来手工标记.要是标记像ImageNet这样大规模的上百万张的训练图像 ...
随机推荐
- 2018-2019第一学期C语言助教总结
博客作业成绩统计表 学号 第一次成绩 第二次成绩 第三次成绩 第四次成绩 第五次成绩 4022 75 84 75 64 75 4023 90 80 74 83 78 4024 75 63 61 60 ...
- Qt SD卡 文件系统挂载、文件预览
/********************************************************************************** * Qt SD卡 文件系统挂载. ...
- .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)
我们有很多种方法评估一个方法的执行耗时,比如使用性能分析工具,使用基准性能测试.不过传统的在代码中编写计时的方式依然有效,因为它可以生产环境或用户端得到真实环境下的执行耗时. 如果你希望在 .NET/ ...
- mongodb下cpu高的查询方式(慢查询)
1.查看mongodb进程 ps-ef | grep mongo 获取进程id为3267 2.查看进程的线程 top -p 3267 按shift+h 查看cpu高的线程,发现有线程点用cpu高且cp ...
- 从 Excel 表格粘贴到 浏览器表格中
从 Excel 表格粘贴到 浏览器表格中 由于 Excel 用途广泛,所以在导入时用到很多. 但是更多人的喜欢使用复制粘贴. 在网上找了一圈有找到一个开源项目,可以将 Excel 粘贴到 HTML 中 ...
- 自定义linux命令
方法一.修改/etc/bashrc文件 在文件底部加入 alias zone="cd /usr/local/webserver" 在命令行输入zone,则会直接进入到制定目录 ...
- Bootstrap-Other:UI 编辑器
ylbtech-Bootstrap-Other:UI 编辑器 1.返回顶部 1. Bootstrap UI 编辑器 以下是 15 款最好的 Bootstrap 编辑器或者是在线编辑工具. 1. Boo ...
- IDEA中修改各个部位的字体大小
1.菜单栏 Setting -> Appearance&Behavior -> Appearance ->Override default fonts by (not rec ...
- MySql-5.7.17 -winx64的安装配置
一.下载软件 1. 进入mysql官网,登陆自己的Oracle账号(没有账号的自己注册一个),下载Mysql-5.7.17,下载地址:http://dev.mysql.com/downloads/my ...
- Ubuntu 18.04 gcc降级为4.8.5版本
1. 下载gcc/g++ 4.8 $ sudo apt-get install -y gcc-4.8.5 $ sudo apt-get install -y g++-4.8.5 2. 链接gcc/g ...