ubuntu git clone 默认在当前文件夹

caffe 基础了解:https://www.zhihu.com/question/27982282/answer/39350629

当然,官网才是大牛:http://caffe.berkeleyvision.org/

 Caffe支持三种数据格式输入网络,包括Image(.jpg, .png等),leveldb,lmdb,根据自己需要选择不同输入吧。

深度学习结构剖析(错误纠正,(2)代表一个滤波器多个参数<->一个滤波器一个参数)

 http://blog.csdn.net/zouxy09/article/details/8781543(原文)  (实际上caffe并不这么做)这是我一直困惑的,被这个教程搞得一个星期头晕。caffe中所有输入特征子图和所有输出特征子图都相连。或许,以后直接从直观上思考这个问题,什么破连接,什么节点图,晕死!

http://www.cnblogs.com/tornadomeet/archive/2013/05/05/3061457.html(计算详细一文)

链接1的一个评论:再解释下C3的1516个权值是怎么来的。可以看这个博客http://www.cnblogs.com/tornadomeet/archive/2013/05/05/3061457.html
S2层有6个特征图,尺寸14*14。可以认为S2每个特征图是由14*14个共享权值的神经元输出的(等效为一个神经元卷积)。注意S2与C3不完全连接,C3的第一个特征图只与S2前三个特征图相连。具体看:C3里第一个特征图的一个神经元,与S2里第一个特征图的5*5神经元相连,同时也与第二个特征图的5*5相连,也与第三个特征图的5*5相连。因此C3第一个特征图的权值数为(5*5*3+1). 
其实应该有个非常形象化的过程,就是三维卷积,你把S2层想成一个立方体,厚度为6,横截尺寸14*14, C3第一个特征图实际上是对这个立方体前三层的三维卷积。
再说连接数,C3第一个特征图里共享权值的神经元是10*10个,因此连接数是(5*5*3+1)*100

1516怎么来的?
(5*5*3+1)*6+(5*5*4+1)*9+(5*5*6+1)=1516
连接数,其实就是神经元复制了100次:
1516*100

看到下面有人说卷积核是60个,这个理解应该是把卷积只限制在S2的一个特征图上了,用三维卷积的角度考虑,卷积核实际上实在多特征图上进行,所以卷积核应该是16个
(用60个卷积核推导出的权值数和连接数还是1516和151600吗??)

个人理解,如果错了恳求大家指出,我也好改正

按照链接2(good):计算C5,由于全连接,故有,C5和S4中所有的挨个连,然后共加起来,再添加一个偏置,共(5*5*16+1)=401个参数,则120个共有120*401=48120个参数。当然,由于滤波器扫描移动是“1*1”,故连接数也是48120个。

按照链接2:F6的连接84(设计的),每个都全连接C5中120个特征子图(1*1),然后加起来,再添加一个偏置,共(1*1*120+1)=121个参数,则84个共有

84*121=10164个

注1:如此,输入相当于只有一个特征子图。

注2:最终经过一个sigmoid函数输出。还有什么径向基函数

总结思路:

参数计算:我的判别式如下表达式,其中L是上层Ck-1层的特征子图个数,F是滤波器参数个数,通常等于*×*,1是偏置,i代表本层Ck标号,共C个特征子图。Lik指Ck层的第i个连接Ck-1层的特征子图个数。的求和指对所有标号求和,因为,不是全连接时,各个标号是不对称的,对应的参数也不一样。

(1)特殊地,对于pooling,通常F=1,Lik=1,代表滤波器只有一个参数,F=1感受野的像素之后乘上一个权重,L=1代表pooling只可能与Ci-1有关。

(2)特殊地,对于第一数据输入层,Lik=1

连接数的计算:我的判别式如下表达式,说明类似上面,多加一个M,代表Ck层每个滤波器在Ck-1层滑动的总步数,通常等于*×*。考虑可能滑动之后与滑动之前有部分重叠,也有可能不重叠。特殊地,M不使前后层重叠。对于pooling,通常F=1,Lik=1,代表滤波器只有一个参数,F=1感受野的像素之后乘上一个权重,Lik=1代表pooling只可能与Ck-1有关。

注意:

最后给出caffe作者的图文解释:http://www.zhihu.com/question/28385679

按照caffe中的结论,对比总结中的参数计算,Lik=上层特征子图数(通道数/输入个数)

caffe 学习记录1及网络结构的更多相关文章

  1. caffe学习记录

    结论: caffe网络的prototxt训练与测试的时候用的是不同的,训练的时候用的prototxt里面有test只是为了测试网络的训练程度,里面的测试集是验证集,并不是真正我们测试的时候用的网络定义 ...

  2. caffe学习记录2——blobs

    参考:caffe官网  2016-01-23 10:08:22 1 blobs,layers,nets是caffe模型的骨架 2 blobs是作者写好的数据存储的“容器”,可以有效实现CPU和GPU之 ...

  3. Caffe学习笔记(一):Caffe架构及其模型解析

    Caffe学习笔记(一):Caffe架构及其模型解析 写在前面:关于caffe平台如何快速搭建以及如何在caffe上进行训练与预测,请参见前面的文章<caffe平台快速搭建:caffe+wind ...

  4. caffe学习三:使用Faster RCNN训练自己的数据

    本文假设你已经完成了安装,并可以运行demo.py 不会安装且用PASCAL VOC数据集的请看另来两篇博客. caffe学习一:ubuntu16.04下跑Faster R-CNN demo (基于c ...

  5. Matlab 进阶学习记录

    最近在看 Faster RCNN的Matlab code,发现很多matlab技巧,在此记录: 1. conf_proposal  =  proposal_config('image_means', ...

  6. Caffe学习系列(23):如何将别人训练好的model用到自己的数据上

    caffe团队用imagenet图片进行训练,迭代30多万次,训练出来一个model.这个model将图片分为1000类,应该是目前为止最好的图片分类model了. 假设我现在有一些自己的图片想进行分 ...

  7. Caffe学习系列——工具篇:神经网络模型结构可视化

    Caffe学习系列——工具篇:神经网络模型结构可视化 在Caffe中,目前有两种可视化prototxt格式网络结构的方法: 使用Netscope在线可视化 使用Caffe提供的draw_net.py ...

  8. Caffe学习笔记2

    Caffe学习笔记2-用一个预训练模型提取特征 本文为原创作品,未经本人同意,禁止转载,禁止用于商业用途!本人对博客使用拥有最终解释权 欢迎关注我的博客:http://blog.csdn.net/hi ...

  9. CAFFE学习笔记(五)用caffe跑自己的jpg数据

    1 收集自己的数据 1-1 我的训练集与测试集的来源:表情包 由于网上一幅一幅图片下载非常麻烦,所以我干脆下载了两个eif表情包.同一个表情包里的图像都有很强的相似性,因此可以当成一类图像来使用.下载 ...

随机推荐

  1. GCC精彩之旅

    在为Linux开发应用程序时,绝大多数情况下使用的都是C语言,因此几乎每一位Linux程序员面临的首要问题都是如何灵活运用C编译器.目前Linux下最常用的C语言编译器是GCC(GNU Compile ...

  2. python下载网页上公开数据集

    URL很简单,数据集分散开在一个URL页面上,单个用手下载很慢,这样可以用python辅助下载: 问题:很多国外的数据集,收到网络波动的影响很大,最好可以添加一个如果失败就继续请求的逻辑,这里还没有实 ...

  3. mybatis中的懒加载

    知识点:mybatis中的懒加载的使用 参考:https://www.cnblogs.com/ysocean/p/7336945.html?utm_source=debugrun&utm_me ...

  4. Tachyon:Spark生态系统中的分布式内存文件系统

    转自: http://www.csdn.net/article/2015-06-25/2825056  摘要:Tachyon把内存存储的功能从Spark中分离出来, 使Spark可以更专注计算的本身, ...

  5. Nodejs V8引擎 fast property lookup

    前言 之所以会研究这个东西,是我在网上找了一下各个语言的执行效率比较.好吧,我承认这是个无聊的东西,不过看看总是无妨,然而我惊讶的发现,有些测试声称Java,C,Nodejs是处在同一个效率级别参见链 ...

  6. asp.net core 发布 不打包cshtml 文件

    需要在 FolderProfile.pubxml 文件中添加 FolderProfile.pubxml <MvcRazorCompileOnPublish>false</MvcRaz ...

  7. 【jdk源码分析】java多线程开启的三种方式

    1.继承Thread类,新建一个当前类对象,并且运行其start()方法 package com.xiaostudy.thread; /** * @desc 第一种开启线程的方式 * @author ...

  8. js创建表格

    js创建一个表格,其中的表头已经有了,要从json中读取的数据一行一行地创建表格 function create_table(data){ tableNode = document.getElemen ...

  9. 使用iview--1

    在任意一个你想创建项目的路径下 每次输入就输一致的就可以 /*************************安装选项开始****************/ 回车再次回车就如下,输入Y 继续 回车,输 ...

  10. vim与shell切换

    扩展一些vim的知识. vim与shell切换 :shell 可以在不关闭vi的情况下切换到shell命令行. :exit 从shell回到vim. 文件浏览 :Ex 开启目录浏览器,可以浏览当前目录 ...