1
# Defining the tf ops
prob_placeholder = tf.placeholder(tf.float32, shape=(2))
log_placeholder = tf.log(prob_placeholder)
grads_placeholder = tf.gradients(ys=tf.log(prob_placeholder), xs=model.weights)
# t is some index into the holders (which are lists)
# s is some state || p_a is some list of [p_1, 1 - p_1] || a_ is either 0 or 1 || r is 1
prob_ = tf_sess.run(prob_placeholder, {prob_placeholder: p_a})
log_ = tf_sess.run(log_placeholder, {prob_placeholder: prob_})
print(prob_, log_)
grads_ = tf_sess.run(grads_placeholder, {prob_placeholder: prob_})
기본적으로 나는 그것이 반환 이유를 모르겠습니다.tf_gradients가 None을 반환하는 이유는 무엇입니까?
TypeError: Fetch argument None has invalid type <type 'NoneType'>
I 인쇄 문을 추가 시도하고 내가 prob_을 볼 수 있고 잘 나오지 log_하지만 위의 문제를 일으키는 tf.gradients에서 무슨 일이 일어나고 있는지 모르겠어요.
model.weights는 기본적으로 내가 사용하고있는 모델의 가중치입니다.
굉장! 한 가지 방법은 model.output이 prob_placeholder가되도록 만드는 것입니다. 그 방법 prob_placeholder는 간접적으로 model.weights와 관련이 있습니까? – user49593
@ user162264 일반적인 방법은 출력 레이블을'tf.placeholder'에 보관하고 진정한 레이블과 NN의 출력을 취하여 값을 계산하는 손실 함수를 계산하는 것입니다. 그러면 손실 w의 기울기를 계산할 수 있습니다. 모델 변수. –