gpt4 book ai didi

python - 如何使用tensorflow逼近hessian矩阵范数

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

我想知道是否有任何方法可以使用图中更新的权重重新计算梯度,或者是否有更好的方法来做到这一点。例如,为了估计粗麻布范数,我们需要计算

delta ~ N(0, I)
hessian_norm = 1/M \sum_{1}^{M} gradient(f(x+delta))- gradient(f(x-delta))/(2*delta)

我们需要在x+delta上渐变值。目前,如果我们直接在 var+delta 上使用 tf.gradient,我们将得到 None 类型。

更具体地说,如果我们定义

a = tf.Variable
b = some_function(a)
grad = tf.gradients(b, a)

这是一个正常的梯度计算,但如果我们这样做

grad_delta = tf.gradients(b, a+delta) 

它将返回None。这个特性似乎使得使用上述方法无法逼近hessian范数。

最佳答案

b 不是 a+delta 的函数,因此您得到 None。您需要创建依赖于 a+delta 的新值 b2,或者只需将 a 变量移动 delta > 并再次评估以获得第二个值。

这与您的做法类似 line search in TensorFlow .

关于python - 如何使用tensorflow逼近hessian矩阵范数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46672168/

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