0
다음은 정책 그라디언트 algo를 디자인하는 데 사용하는 코드의 일부입니다. tensorflow에서 :tf.gradients가 모두 0을 반환합니다.
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는 모두 0입니다. 내가 놓친 게 있니?
tvars의 값은 무엇인가? 그것은 뭔가 좋은 평가합니까? 얼마나 많은 변수와 log_p가 의존 하는가? 나는 또한 당신이 tf.nn.softmax에서 자아 활성화 및 활성화를 발견했습니다. 활성화가 self.activation이어야합니까? 활성화는 어디에 정의되어 있습니까? –