Применение 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 - точка, в которой мы хотим оценить функцию
Спасибо Андрею Ахметову за указание на это!