Применение tf.gradients для функции

x = tf.Placeholder(shape=[1,31,5,1])
def func(x):
    operations...
    return output

convolutionFunction = func(x)
sess = tf.Session()
gradientConv1 = gradientConv1 + sess.run(tf.gradients(tf.square(reward-convolutionFunction), weightsConv1))

градиентКонв1 (массив значений формы [2,2,1,32]) weightsConv1 (тензорная переменная формы [2,2,1,32])

Я получаю сообщение об ошибке, такое что "Заполнитель должен иметь тип d float и форму [1,31,5,1]". Кажется, это показывает мне, что я не дал feed_dict функции в sess.run? Пожалуйста, укажите мне на ошибку. Также мой способ дифференциации по отношению к каждому правильному значению.

награда - скаляр

1 ответ

Решение
gradientConv1 = gradientConv1 + sess.run(tf.gradients(tf.square(reward-convolutionFunction), weightsConv1), feed_dict={x: <valueOfPlaceholder> })

где valueOfPlaceholder - точка, в которой мы хотим оценить функцию

Спасибо Андрею Ахметову за указание на это!

Другие вопросы по тегам