gpt4 book ai didi

python - Caffe 中的 net.params[layer].diff 中到底存储了什么?

转载 作者:太空宇宙 更新时间:2023-11-03 14:19:22 28 4
gpt4 key购买 nike

我知道net.params[layer].diff应该是损失函数对权重的导数,即net.params[layer].data,但是,我对以下示例感到困惑:它是 MNIST 的 3 层(ip1、ip2、ip3)全连接网络:

import caffe
caffe.set_mode_cpu()
import numpy as np

solver = caffe.SGDSolver('solver.prototxt')
solver.net.copy_from('iter_18000.caffemodel')

solver.net.forward()
solver.net.backward()

# the computed derivatives of ip3
# shape of ip3: (10, 300)
computed = np.dot(np.transpose(solver.net.blobs['ip3'].diff),
solver.net.blobs['ip2'].data)
# actual derivatives of ip3
actual = solver.net.params['ip3'][0].diff
print np.count_nonzero(computed - actual)

结果是2260。有人能解释一下吗?非常感谢。

最佳答案

已解决! the computed derivatives of ip3应该是np.dot(np.transpose(solver.net.blobs['ip3'].diff), solver.net.blobs['relu2'].data) ,也就是说,在我的示例中,relu 是一个额外的层。

关于python - Caffe 中的 net.params[layer].diff 中到底存储了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48039925/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com