Caffe 里 top[i]->cpu_diff() bottomp[i]->cpu_diff() 取出梯度,这些梯度在默认的情况下 caffe将其设置为0

本文探讨了Caffe框架中梯度传播的过程,详细解释了在没有反向传播时,网络参数如何受到weight decay的影响而发生变化。通过具体示例展示了不同节点的梯度状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Caffe 里 top[i]->cpu_diff() bottomp[i]->cpu_diff() 取出梯度,这些梯度在默认的情况下 caffe将其设置为0,只有在有梯度往前传播,top和bottom的梯度发生更新后,才会有所改变
this->type():Convolution
top[0]->cpu_diff()[0]:0.000000
top[0]->cpu_diff()[1]:0.000000
top[0]->cpu_diff()[10]:0.000000
top[0]->cpu_diff()[20]:0.000000
top[0]->cpu_diff()[50]:0.000000
top[0]->cpu_diff()[60]:0.000000
top[0]->cpu_diff()[35]:0.000000

this->type():Convolution
top[0]->cpu_diff()[0]:0.000000
top[0]->cpu_diff()[1]:0.000000
top[0]->cpu_diff()[10]:0.000000
top[0]->cpu_diff()[20]:-0.001144
top[0]->cpu_diff()[50]:-0.000111
top[0]->cpu_diff()[60]:0.000000
top[0]->cpu_diff()[35]:0.000379

但是即使没有BP,网络的learnable_params还是会发生变化的,因为在没有BP的情况下,learnable_params的梯度保持为默认值0,但是还有weight decay,它会导致learnable_params的变化。
(gdb) p this->blobs_[0]->cpu_data()[0]
$80 = -0.283210695

(gdb) p this->blobs_[0]->cpu_data()[0]
$86 = -0.274512082

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值