caffe源代码里的num 和count各代表什么意思啊?

还有mutable_cpu_data又代表什么?
已邀请:

joshua_1988 - https://joshua19881228.github.io/

赞同来自: alex68

在top和bottom里,num一般指代batch size。在卷积层的参数里,num可以理解为卷积核的个数,与输出通道数相同。mutable_cpu_data用来给blob分配内存空间,返回的是一个可以被修改的指针。

alex68 - 一般不扯淡~

赞同来自:

@joshua_1988 同学说的很好 关于count() 这里拿内积层举例
const int axis = bottom[0]->CanonicalAxisIndex(this->layer_param_.inner_product_param().axis());
这里 optional int32 axis = 5 [default = 1]; ,因此inner_product_param().axis())的默认值是1,
CanonicalAxisIndex()函数是返回规范化的axis值(它支持输入负数,例如-1表示最后一个维度),
因此const int axis 的值是1,也就是第1个维度,
好的,下面
K_ = bottom[0]->count(axis);
如果bottom[0]的blob的形状是(N,C,H,W),上面说axis=1,count(axis)的作用是计算bottom[0]的blob从第axis维到最后一维的长度,在这里就是K_ =C*H*W,也就是特征的长度。
 
 

要回复问题请先登录注册