0
以下是我用於設計策略梯度算法的一部分代碼。在張量流中:tf.gradients返回所有的零
self.activation = tf.contrib.layers.fully_connected(inputs= state,num_outputs =\
num_actions,activation_fn=tf.nn.relu6,weights_initializer=tf.contrib.layers.xavier_initializer(),\
biases_initializer=tf.random_normal_initializer(mean=1.0,stddev=1.0),trainable=True)
action_prob = tf.nn.softmax(activation)
log_p = tf.log(tf.reduce_sum(tf.multiply(action_prob,action),axis=1))
tvars = tf.trainable_variables()
policy_gradients = tf.gradients(ys= log_p,xs = tvars)
張量log_p的計算結果是很好的。但是,policy_gradients都是零。我錯過了什麼嗎?
什麼是tvars的價值觀?它評估到一些好事嗎? log_p有多少變量和哪些變量依賴於?我也注意到你在tf.nn.softmax中有self.activation和activation。激活應該是self.activation?激活在哪裏定義? –