文章分类 - caffe源码解析(转载)
摘要:梳理caffe代码data_transformer(十二) data_transformer详细注释看头文件和实现部分: 头文件: [cpp] view plain copy /////////////////TransformationParameter的caffe消息定义 /* // Messa
阅读全文
摘要:梳理caffe代码data_reader(十一) 上一篇的blocking_queue到底干了一件什么事情呢?刚刚看完就有点忘记了,再过一会估计忘光了。。。 顾名思义,阻塞队列,就是一个正在排队的打饭队列,先到窗口的先打饭,为什么会高效安全呢?一是像交通有秩序,二是有了秩序是不是交通运行起来就快了。
阅读全文
摘要:梳理caffe代码blocking_queue(十) 这一个文件基本是我们最头疼的黑色地带,关于XXXX锁,XXXX解锁的问题,遇到的了学习学习,记不住多温习几次就可以。 首先抛开那些官方的条条框框,我们为了不让多个线程同时访问共享的资源是至关重要的。假如一个线程试图改变共享数据的值,而另外一个线程
阅读全文
摘要:梳理caffe代码internal_thread(九) 经过common的学习之后,然后这个InternalThread类实际上就是boost库的thread的封装,然后对线程进行控制和使用。废话不多啰嗦 看看头文件: [cpp] view plain copy class InternalThre
阅读全文
摘要:梳理caffe代码common(八) 由于想梳理data_layer的过程,整理一半发现有几个非常重要的头文件就是题目列出的这几个: 追本溯源,先从根基开始学起。这里面都是些什么鬼呢? common类 命名空间的使用:google、cv、caffe{boost、std}。然后在项目中就可以随意使用g
阅读全文
摘要:梳理caffe代码layer_factory(六) 因为前一篇描述的是layer层,其实应该先学习工厂模式,最早我也学习过了23中模式设计,不熟悉这个模式的可以看一下下面这段代码。 这个是最简单的工厂模式。 Layer_factory的主要作用是负责Layer的注册,已经注册完事的Layer在运行时
阅读全文
摘要:Caffe源码解析7:Pooling_Layer 转载请注明出处,楼燚(yì)航的blog,http://home.cnblogs.com/louyihang-loves-baiyan/ Pooling 层一般在网络中是跟在Conv卷积层之后,做采样操作,其实是为了进一步缩小feature map,
阅读全文
摘要:Caffe源码解析6:Neuron_Layer 转载请注明出处,楼燚(yì)航的blog,http://home.cnblogs.com/louyihang-loves-baiyan/ NeuronLayer,顾名思义这里就是神经元,激活函数的相应层。我们知道在blob进入激活函数之前和之后他的si
阅读全文
摘要:Caffe源码解析4: Data_layer 转载请注明出处,楼燚(yì)航的blog,http://home.cnblogs.com/louyihang-loves-baiyan/ data_layer应该是网络的最底层,主要是将数据送给blob进入到net中,在data_layer中存在多个跟d
阅读全文
摘要:梳理caffe代码layer(五) Layer(层)是Caffe中最庞大最繁杂的模块。由于Caffe强调模块化设计,因此只允许每个layer完成一类特定的计算,例如convolution操作、pooling、非线性变换、内积运算,以及数据加载、归一化和损失计算等。layer这个类可以说是里面最终的一
阅读全文
摘要:caffe代码阅读5:Layer的实现细节-2016.3.17 一、Layer的作用简介 Layer实际上定义了Layer的基本操作,即初始化层、前向传播和反向传播。在前向传播中根据bottom blob得到top blob,反向传播则根据top反传到bottom。而且在前传的时候还可以计算loss
阅读全文
摘要:caffe代码阅读1:blob的实现细节-2016.3.14 caffe 中 BLOB的实现 一、前言 等着caffe没有膨胀到很大的程度把caffe的代码理一理 (1)第一次阅读Caffe的源码,给人的印象就是里面大量使用了gtest,确实也简化了不少代码,看起来很清晰。 (2)caffe的文档是
阅读全文
摘要:Caffe源码解析3:Layer 转载请注明出处,楼燚(yì)航的blog,http://home.cnblogs.com/louyihang-loves-baiyan/ layer这个类可以说是里面最终的一个基本类了,深度网络呢就是一层一层的layer,相互之间通过blob传输数据连接起来。首先l
阅读全文
摘要:Caffe源码解析1:Blob 转载请注明出处,楼燚(yì)航的blog,http://www.cnblogs.com/louyihang-loves-baiyan/ 首先看到的是Blob这个类,Blob是作为Caffe中数据流通的一个基本类,网络各层之间的数据是通过Blob来传递的。这里整个代码是
阅读全文
摘要:梳理caffe代码blob(三) 贯穿整个caffe的就是数据blob: [cpp] view plain copy #ifndef CAFFE_BLOB_HPP_ #define CAFFE_BLOB_HPP_ #include <algorithm> #include <string> #inc
阅读全文
摘要:【Caffe代码解析】SyncedMemory 功能: Caffe的底层数据的切换(cpu模式和gpu模式),需要用到内存同步模块。 源码:头文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 2
阅读全文
摘要:Caffe源码解析2:SycedMem 转载请注明出处,楼燚(yì)航的blog,http://www.cnblogs.com/louyihang loves baiyan/ 看到SyncedMem就知道,这是在做内存同步的操作。这类个类的代码比较少,但是作用是非常明显的。文件对应着syncedme
阅读全文
摘要:梳理caffe代码syncedmem(二) 接着最重要的就是内存分配和Caffe的底层数据的切换(cpu模式和gpu模式),需要用到内存同步模块。这类个类的代码比较少,但是作用是非常明显的。文件对应着syncedmem.hpp,着syncedmem.cpp首先是两个全局的内联函数。如果机器是支持GP
阅读全文
摘要:Caffe源码(一):math_functions 分析 目录 目录 主要函数 caffe_cpu_gemm 函数 caffe_cpu_gemv 函数 caffe_axpy 函数 caffe_set 函数 caffe_add_scalar 函数 caffe_copy 函数 caffe_scal 函数
阅读全文
摘要:梳理caffe代码math_functions(一) 先从caffe中使用的函数入手看看: #include <boost/math/special_functions/next.hpp> #include <boost/random.hpp> #include <limits> #include
阅读全文

浙公网安备 33010602011771号