今天运行代码时发现,跑完后 loss 记录出现问题。相关代码如下,记录loss时调用了global_step。但结果global_step一直未随网络update变化。
self.summaries = tf.summary.merge([
tf.summary.scalar("loss", self.loss),
tf.summary.scalar("loss_state", self.loss_state),
tf.summary.scalar("loss_reward", self.loss_reward)
])
l, train_sum, global_step, _ = sess.run([self.loss,self.summaries,tf.train.get_global_step(),self.learn],{self.s:s,
self.a:a,
self.r:r,
self.s_:s_nn})
self.writer.add_summary(train_sum,global_step)
发现构建类时global_step尚未创建,如下。
Ob_State = Transform() #类
global_step = tf.Variable(0, name='global_step', trainable=False)
调换位置如下即可解决。
global_step = tf.Variable(0, name='global_step', trainable=False)
Ob_State = Transform()