Я хочу вычислить градиенты тензора «Y» относительно матрицы параметров «X» в Tensorflow. В частности, я хочу вычислить градиенты только для заданного набора «индексов» «X». Следующий код вычисляет весь градиент, а затем возвращает эти градиенты, соответствующие желаемые показатели:Использование Tensorflow «tf.gather» и «tf.gradients» вместе
Y=some_function_of_X
grad=tf.gradients(Y,X)
grads_i_want_to_compute=tf.gather(grad,indices)
Использования «tf.scatter_sub» Tensorflow, я могу затем обновить желаемые показатели матрицы параметров «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» возвращает объекты «Нет», поэтому я не могу продолжить. Кто-нибудь знает, как решить эту проблему?