![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
caffe源码学习
文章平均质量分 85
牛闯
学生
展开
-
caffe源码学习(二) Blob
根据caffe官方教程我们知道,在数据的前向传播和梯度的反向传播过程中,caffe以Blob的形式来存储、传递和操作数据,Blob是标准的array,也是框架的统一内存接口。 为了更明了,还是先把关于Blob的caffe官方教程贴过来吧。Blob storage and communication A Blob is a wrapper over the actual data being pr原创 2016-04-24 16:37:03 · 3990 阅读 · 0 评论 -
caffe 源码学习(三) SyncedMemory 与 shared_ptr
在blob.hpp中我们会看到protected成员变量:protected: shared_ptr<SyncedMemory> data_; shared_ptr<SyncedMemory> diff_; shared_ptr<SyncedMemory> shape_data_; vector<int> shape_; int count_; int capacity_;其原创 2016-04-26 11:01:18 · 4914 阅读 · 0 评论 -
caffe源码学习(四) layer
根据caffe官网教程我们知道,caffe是通过层来定义网络的,layer既是model基础,也是计算的基本单元。而layer的操作对象就是之前学习的Blob。以后像在caffe框架下实现自己的算法,应该主要是添加自己的layer了,这也是我学习caffe源码的主要原因之一。 还是先通过caffe官网教程对layer有个整体的认识,为了方便还是把它贴过来。Layer computation and原创 2016-04-26 12:04:52 · 5636 阅读 · 0 评论 -
caffe源码学习(一) google protocol buffer
caffe源码学习 protocol buffer原创 2016-04-24 11:27:32 · 2479 阅读 · 4 评论 -
caffe源码学习(五) data layer
通过前面的学习,了解了protobuf,blob,cpu和gpu数据管理,基类Layer。在使用caffe时,我们首先在prototxt文件中定义数据层,可以参考官网教程。这样我们就可以通过数据层来读取和预处理我们指定格式的数据,并将其送入网络。接下来就学习的目的是:了解caffe是怎样实现这样的数据层的,对于自己的特殊数据能够写出自己的数据层。参考官网列出的各类继承关系,逐一学习它们的作用。1.源原创 2016-04-30 09:55:25 · 7733 阅读 · 0 评论 -
caffe源码学习(六) 自定义层
经过前面对google protocol buffer、Blob、SyncedMemory 与 shared_ptr、layer、data layer的初步学习,已经能够仿照caffe中已有的层来写自定层了。所以接下来就在caffe深度学习框架下写自定义层。首先应该注意,不同版本的caffe可能会有一些区别,所以要根据官网指南来写自定义层。为了方便,把目前版本的指南(20160605)贴出来:Dev原创 2016-06-06 00:06:18 · 6044 阅读 · 0 评论