вычислить градиент (dy / dx) в тензорном потоке с тем же размером y - PullRequest
0 голосов
/ 26 апреля 2018

Я хочу вычислить градиент dy / dx и получить градиент в размере y плюс размеры x, чтобы указать дифференцирование по переменной x.например, если Y [100x1] = A [100x50] X [50x1], верните Y [100x1x50x1].(для каждого параметра в x задайте дифференцирование Y)

Я пробовал оператор tf.gradients: https://www.tensorflow.org/api_docs/python/tf/gradients

Однако вместо этого он возвращает сумму (dy / dx)дд / дх

1 Ответ

0 голосов
/ 26 апреля 2018

Вы на самом деле не хотите вычислять градиент, вы хотите вычислить якобиан.Градиент - это применение оператора nabla к скалярной функции по отношению к вектору, в то время как якобиан - это просто матрица, где каждый элемент J_ij является производной от y_i по x_j, что вам и нужно.

Это все еще не реализовано в Tensorflow, но подробно обсуждено здесь .Там вы, вероятно, найдете подходящий для вас способ работы.

Основная идея состоит в том, чтобы вызывать tf.gradients только по одной переменной за раз, а затем строить якобиан оттудавручную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...