Tensorboard无法正确显示标量

时间:2019-02-26 11:09:31

标签: tensorflow tensorboard

我是Tensorflow的新手,已经为这个问题调试了好几天,但是我仍然找不到任何解决方案。

当我打印出损失和报酬时,它反映了实际数字:

total step: 79800.00 reward: 6.00, loss: 0.0107212793
....
total step: 98600.00 reward: 5.00, loss: 0.0002098639
total step: 98700.00 reward: 6.00, loss: 0.0061239433

但是,当我在Tensorboard上绘制它们时,存在三个问题:

  1. 存在Z形损失。如何在同一时间步长有多个损耗值?
  2. 损失趋于平缓,在某些步骤之后似乎是一个常数。
  3. 在Tensorboard上,average_reward和Episode_reward始终为零。

这是我的Tensorboard的屏幕截图:

屏幕截图:

enter image description here

为什么会出现这三个问题,我该如何解决?

这是代码,我在每个训练步骤的最后都调用了一个函数:

def make_summary(self):
    self.env.render()

    if self.episode == 1:
        self.writer = tf.summary.FileWriter("./train")
    if self.step > self.start_learning and self.step % self.train_freq == 0:
        if not self.added_scalars:
            self.writer.add_graph(self.sess.graph)
            self.episode_reward_ph = tf.placeholder(tf.float32,shape=None,name='episode_reward_ph')
            self.average_reward_ph = tf.placeholder(tf.float32,shape=None,name='average_reward_ph')
            tf.summary.scalar('episode_reward', self.episode_reward_ph)
            tf.summary.scalar('average_reward', self.average_reward_ph)
            tf.summary.scalar('loss', self.l)
            self.summ = tf.summary.merge_all()
            self.added_scalars = True
        else:
            with self.sess.as_default():
                self.merged_summary = self.sess.run(self.summ, feed_dict = {self.episode_reward_ph: self.final_episode_reward,
                                                                            self.average_reward_ph: self.average_reward})
                self.writer.add_summary(self.merged_summary, self.step)
                self.writer.flush()

0 个答案:

没有答案