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的更多相关文章

  1. 从AlexNet(2012)开始

    目录 写在前面 网络结构 创新点 其他有意思的点 参考 博客:blog.shinelee.me | 博客园 | CSDN 写在前面 本文重点在于回顾深度神经网络在CV领域的First Blood--A ...

  2. 学习笔记TF030:实现AlexNet

    ILSVRC(ImageNet Large Scale Visual Recognition Challenge)分类比赛.AlexNet 2012年冠军(top-5错误率16.4%,额外数据15.3 ...

  3. TensorFlow实战之实现AlexNet经典卷积神经网络

    本文根据最近学习TensorFlow书籍网络文章的情况,特将一些学习心得做了总结,详情如下.如有不当之处,请各位大拿多多指点,在此谢过. 一.AlexNet模型及其基本原理阐述 1.关于AlexNet ...

  4. 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 ...

  5. 深度学习方法(五):卷积神经网络CNN经典模型整理Lenet,Alexnet,Googlenet,VGG,Deep Residual Learning

    欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.技术感兴趣的同学加入. 关于卷积神经网络CNN,网络和文献中 ...

  6. 图像分类丨ILSVRC历届冠军网络「从AlexNet到SENet」

    前言 深度卷积网络极大地推进深度学习各领域的发展,ILSVRC作为最具影响力的竞赛功不可没,促使了许多经典工作.我梳理了ILSVRC分类任务的各届冠军和亚军网络,简单介绍了它们的核心思想.网络架构及其 ...

  7. CNN-2: AlexNet 卷积神经网络模型

    1.AlexNet 模型简介 由于受到计算机性能的影响,虽然LeNet在图像分类中取得了较好的成绩,但是并没有引起很多的关注. 知道2012年,Alex等人提出的AlexNet网络在ImageNet大 ...

  8. (转)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 ...

  9. ImageNet && 医学图像的识别

    医学图像识别的问题 如果将CNN应用于医学图像,首要面对的问题是训练数据的缺乏.因为CNN的训练数据都需要有类别标号,这通常需要专家来手工标记.要是标记像ImageNet这样大规模的上百万张的训练图像 ...

随机推荐

  1. 在SSH项目中实现分页效果

    在实现分页的时候,我使用的是数据库下面的User表,实现的效果是通过分页查询 能够将表中的数据分页显示,点击相关的按钮实现:首页.上一页.下一页.末页的显示 1新建一个dynamic web proj ...

  2. 在Android中来修改SQL里面的权限和显示内容

    1.在Android中建立了一个数据库. 然后要知道存储数据库的路劲.得到路劲然后进入cmd里面进到 手机终端. 2.利用splite3来显示数据库里面的东西. 3.利用chmod来修改数据库文件的权 ...

  3. spring注解事务使用总结

    在使用spring的注解事务的时候,需要考虑到事务的传播行为.遇到什么类型的异常时,事务才起作用.事务方法之间的嵌套调用时,怎么样才生效等等诸多问题.网上搜到很多的主要还是一堆理论文字描述,我这里给出 ...

  4. 重新学习之spring第二个程序,配置AOP面向切面编程

    第一步:在配置好的ioc容器的基础上,导入面向切面编程所需要的jar包 (本案例用的是spring3.2.4,由于spring3.2.4的官网jar包中不再有依赖包,所以依赖包都是从网上找的) 第二步 ...

  5. streamsets microservice pipeline 试用

    实际上还是一个pipeline,只是添加了一些规则以及内嵌的http server 方便我们对于基于http 或者类似轻量 协议数据的处理 基本环境 使用docker&& docker ...

  6. maven打jar到私服

    <dependency> <groupId>fakepath</groupId> <artifactId>wcs-java-sdk</artifa ...

  7. Django 思维导图

  8. C#:进程、线程、应用程序域(AppDomain)与上下文分析

    进程     进程是操作系统用于隔离众多正在运行的应用程序的机制.在.Net之前,每一个应用程序被加载到单独的进程中,并为该进程指定私有的虚拟内存.进程不能直接访问物理内存,操作系统通过其它的处理把这 ...

  9. spring的定时任务配置(注解)

    参考博客: http://www.jb51.net/article/110541.htm http://blog.csdn.net/wxwzy738/article/details/25158787 ...

  10. python + docker, 实现天气数据 从FTP获取以及持久化(一)

    前情提要 最近项目需要天气数据(预报和历史数据)来作为算法程序的输入. 项目的甲方已经购买了天气数据, 依照他们的约定,天气数据的供应商会将数据以"文本" (.TXT)的方式发到F ...