[caffe]AlexNet模型解读

在imagenet上的图像分类challenge上Alex提出的alexnet网络结构模型赢得了2012届的冠军。要研究CNN类型DL网络模型在图像分类上的应用,就逃不开研究alexnet,这是CNN在图像分类上的经典模型(DL火起来之后)。

在DL开源实现caffe的model样例中,它也给出了alexnet的复现,具体网络配置文件如下https://github.com/BVLC/caffe/blob/master/models/bvlc_reference_caffenet/train_val.prototxt

接下来本文将一步步对该网络配置结构中各个层进行详细的解读(训练阶段):

1. conv1阶段DFD(data flow diagram):

2. conv2阶段DFD(data flow diagram):

3. conv3阶段DFD(data flow diagram):

4. conv4阶段DFD(data flow diagram):

5. conv5阶段DFD(data flow diagram):

6. fc6阶段DFD(data flow diagram):

7. fc7阶段DFD(data flow diagram):

8. fc8阶段DFD(data flow diagram):

各种layer的operation更多解释可以参考http://caffe.berkeleyvision.org/tutorial/layers.html

从计算该模型的数据流过程中,该模型参数大概5kw+。

时间: 2024-11-03 22:34:20

[caffe]AlexNet模型解读的相关文章

caffe AlexNet模型理解

之前看了CaffeNet,现在再看看这AlexNet,主要是为了帮助理解论文. 这里主要是记录一些和CaffeNet的不同的地方. 第一层:主要是先归一化再池化 第二层:偏差为0.1.先归一化后池化 第三层:一模一样 第四层:偏差为0.1. 第五层:偏差为0.1. 第六层:偏差为0.1 第七层:偏差为0.1 从上图,也可以看出,跟caffenet,就是卷积和归一化的顺序,以及偏差大小不同的差距.

c++11 内存模型解读

c++11 内存模型解读 关于乱序 说到内存模型,首先需要明确一个普遍存在,但却未必人人都注意到的事实:程序通常并不是总按着照源码中的顺序一一执行,此谓之乱序,乱序产生的原因可能有好几种: 编译器出于优化的目的,在编译阶段将源码的顺序进行交换. 程序执行期间,指令流水被 cpu 乱序执行. inherent cache 的分层及刷新策略使得有时候某些写读操作的从效果上看,顺序被重排. 以上乱序现象虽然来源不同,但从源码的角度,对上层应用程序来说,他们的效果其实相同:写出来的代码与最后被执行的代码

caffe imagenet模型理解

example下imagenet文件夹下的train_caffenet.sh里面的配置文件为models/bvlc_reference_caffenet/solver.prototxt,找到了solver.prototxt,里面对应的模型为,models/bvlc_reference_caffenet/train_val.prototxt,所以本博文,主要描述的是models/bvlc_reference_caffenet/train_val.prototxt.而且从model文件夹里面可以看到

4 caffe 创建模型与编写配置文件 train_val.prototxt;solver.prototxt;deploy.proto.txt

一,train_val.prototxt name: "CIFAR10_quick" layer { name: "cifar" type: "Data" top: "data" top: "label" include { phase: TRAIN } transform_param { # mirror: true # mean_file: "examples/cifar10/mean.bin

小知识:深度学习的5大常用模型解读

自动编码器 AutoEncoder Deep Learning最简单的一种方法是利用人工神经网络的特点,人工神经网络(ANN)本身就是具有层次结构的系统,如果给定一个神经网络,我们假设其输出与输入是相同的,然后训练调整其参数,得到每一层中的权重. 自然地,我们就得到了输入I的几种不同表示(每一层代表一种表示),这些表示就是特征.自动编码器就是一种尽可能复现输入信号的神经网络. 为了实现这种复现,自动编码器AutoEncoder就必须捕捉可以代表输入数据的最重要的因素,就像PCA那样,找到可以代表

CAFFE源码解读1——Blob

转载:http://www.cnblogs.com/louyihang-loves-baiyan/ 首先看到的是Blob这个类,Blob是作为Caffe中数据流通的一个基本类,网络各层之间的数据是通过Blob来传递的.这里整个代码是非常规范的,基本上条件编译,命名空间,模板类,各种不太经常看到的关键字如exlicit,inline等等.首先提一下explicit关键字的作用是禁止单参数构造函数的隐式转换,具体含义谷歌即可.还有inline的作用,iniline主要是将代码进行复制,扩充,会使代码

transformer模型解读

最近在关注谷歌发布关于BERT模型,它是以Transformer的双向编码器表示.顺便回顾了<Attention is all you need>这篇文章主要讲解Transformer编码器.使用该模型在神经机器翻译及其他语言理解任务上的表现远远超越了现有算法. 在 Transformer 之前,多数基于神经网络的机器翻译方法依赖于循环神经网络(RNN),后者利用循环(即每一步的输出馈入下一步)进行顺序操作(例如,逐词地翻译句子).尽管 RNN 在建模序列方面非常强大,但其序列性意味着该网络在

[转]从零开始山寨Caffe&#183;贰:主存模型

你左手是内存,右手是显存,内存可以打死显存,显存也可以打死内存. -- 请协调好你的主存 从硬件说起 物理之觞 大部分Caffe源码解读都喜欢跳过这部分,我不知道他们是什么心态,因为这恰恰是最重要的一部分. 内存的管理不擅,不仅会导致程序的立即崩溃,还会导致内存的泄露,当然,这只针对传统CPU程序而言. 由于GPU的引入,我们需要同时操纵俩种不同的存储体: 一个受北桥控制,与CPU之间架起地址总线.控制总线.数据总线. 一个受南桥控制,与CPU之间仅仅是一条可怜的PCI总线. 一个传统的C++程

caffe学习

阅读目录 Caffe的优势 Caffe的网络定义 数据及其导数以blobs的形式在层间流动. Caffe的各层定义 训练网络 安装了CUDA之后,依次按照Caffe官网安装指南安装BLAS.OpenCV.Boost即可. Caffe跑跑MNIST试试 让Caffe生成的数据集能在Theano上直接运行 Caffe (CNN, deep learning) 介绍 Caffe深度学习之图像分类模型AlexNet解读 Caffe是一个清晰而高效的深度学习框架,本文详细介绍了caffe的优势.架构,网络