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が返されないのはなぜですか?
TypeError: Fetch argument None has invalid type <type 'NoneType'>
私はprint文を追加しようとしたと私はprob_を見ることができますし、うまく出てくるLOG_が、私は上記の問題を引き起こしているtf.gradientsで何が起こっているかわかりません。
model.weightは基本的に私が使用しているモデルの重みです。
恐ろしい!それで、1つの方法は、model.outputがprob_placeholderになるようにすることでしょうか?そうすればprob_placeholderは間接的にmodel.weightsに関係しますか? – user49593
@ user162264通常の方法は、出力ラベルを 'tf.placeholder'に保ち、真のラベルとNNの出力をとり、値を計算する損失関数を計算することです。次に、損失wの勾配を計算することができます。モデル変数。 –