搞不懂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匹配?

posted @ 2016-02-26 11:05  糯米甜酒  阅读(146)  评论(0)    收藏  举报