gpt4 book ai didi

tensorflow - 一起使用 Tensorflow 的 "tf.gather"和 "tf.gradients"

转载 作者:行者123 更新时间:2023-12-02 03:14:04 24 4
gpt4 key购买 nike

我想计算张量“Y”相对于 Tensorflow 中参数矩阵“X”的梯度。具体来说,我只想计算一组给定的“X”“索引”的梯度。以下代码首先计算整个梯度,然后返回对应于所需索引的那些梯度:

Y=some_function_of_X
grad=tf.gradients(Y,X)
grads_i_want_to_compute=tf.gather(grad,indices)

使用 Tensorflow 的“tf.scatter_sub”,然后我可以根据梯度下降更新参数矩阵“X”的所需索引:
tf.scatter_sub(X,indices,learning_rate*grads_i_want_to_compute)

这工作正常,但在一天结束时,所有的梯度都被计算出来了!为了处理速度,我不想计算所有梯度。所以我试过这个:
Y=some_function_of_X
sparse_X=tf.gather(X,indices)
grads_i_want_to_compute = tf.gradient(Y,sparse_X)
tf.scatter_sub(X,indices,learning_rate*grads_i_want_to_compute)

在后者中,“tf.gradient”返回“None”对象,因此我无法继续。有谁知道如何解决这个问题?

最佳答案

要完成这项工作,您需要 Y 是 sparse_X 的函数,而不是 X 的函数。

关于tensorflow - 一起使用 Tensorflow 的 "tf.gather"和 "tf.gradients",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38063430/

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