caffe源码学习:Blobs

                                                    caffe源码学习:Blobs

 

     caffe 的blob是caffe框架的核心,主要是由number*channel*weight*high组成的一个四维的tensor。首先是blob.hp定义的头文件。


    上图表示的是blob的两个构造函数,现版本的caffe第一个已经过时。


   上图表示的是reshape函数,这个函数主要是在调用Layer::Reshape或者 Layer::Forward函数的时候被触发用来改变blob的维度,以适应当前的计算。

    上面的四个函数首先介绍的CanonicalAxisIndex函数,这个函数主要是对输入的维度进行变化,他允许输入的维度是负数,在做过输入检查之后,然后在判断如果axis小于0的话,加上num_axes( )就可以。num_axes(  )返回blob元的维度。count(  )  主要是返回blob中元素的个数,例如fc曾有4096个神经元,另外coun还有两个版本,只不过参数不同,是按照维度进行索引。inline int count(int start_axis) const和inline int count(int start_axis, int end_axis) const。


   计算在四维的tensor中给定元素位置取出对应的数值。


    上图主要是blob之间数据的拷贝copy_diff为true表示拷贝的是梯度,否则拷贝的是data。reshape为true,表示可以直接转换为其他形状的blob,否则必须经过pre-reshape。红色箭头表示拷贝不同的内容。


  上面就是简单书取出数据。后面的一些方法的具体实现实在CPP中。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值