搞不懂caffe让我觉得很不爽(1)
blobs四维数组存储layers间传递的数据,什么需要在层间传递?神经网络是一个复杂的函数,下一层的输入是上一层的输出,所以数据要forward传播;神经网络的参数训练通过反向传播残差,所以导数需要backward传播。
那参数呢?
参数不是流动的,参数与layers绑定,data来的时候参与计算,diff来的时候参与更新。肯定也需要用数组存,用什么?
网络中数据都是用blob存储,不管什么类型,所谓流动数据只是后面的layer会用到前面layer计算出的blob中存储的数据,不流动的数据就是后面的layer不用。存储是统一的。
流动的data,流动的导数,本地W,本地b(conv层和innerproduct层有,pooling层没有)
就是很大的一维数组,为什么取名叫blob?有什么特别?
参数和样本数无关,所有样本都是用同样的参数在训练,所以存参数时不需要N,应该是卷积核个数×维数×sizeH×sizeW即可,rachel是啥意思?b如何与W匹配?

浙公网安备 33010602011771号