【问题标题】:I'm getting an error of 'ModifiedTensorBoard' object has no attribute '_write_logs' while running this code to train a Deep Q Network在运行此代码以训练 Deep Q 网络时,我收到“ModifiedTensorBoard”对象没有属性“_write_logs”的错误
【发布时间】:2020-08-16 07:55:07
【问题描述】:

我正在运行以下代码:

class ModifiedTensorBoard(TensorBoard):

    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.step = 1
        self.writer = tf.summary.create_file_writer(self.log_dir)

    def set_model(self, model):
        pass

    def on_epoch_end(self, epoch, logs=None):
        self.update_stats(**logs)

    def on_batch_end(self, batch, logs=None):
        pass

    def on_train_end(self, _):
        pass

    def update_stats(self, **stats):
        self._write_logs(stats, self.step)

得到错误:

    232     def update_stats(self, **stats):
--> 233         self._write_logs(stats, self.step)
    234 
    235 

AttributeError: 'ModifiedTensorBoard' object has no attribute '_write_logs'

有人可以建议如何解决这个问题吗?谢谢。

【问题讨论】:

  • 看来您必须编写一个版本的_write_logs。这是link,希望对您有所帮助。
  • 谢谢!能够解决这个问题
  • @HRISHAV RAJ,您能否发布解决方案以使社区受益。谢谢!
  • @TensorflowWarriors 能够解决此问题,但在尝试此操作时出现另一个错误。并在修复该问题时获得了另一个。无法完全解决此问题。

标签: python-3.x tensorflow tensorboard


【解决方案1】:

创建一个“_write_logs”函数如下:

def update_stats(self, **stats):
    self._write_logs(stats, self.step)

def _write_logs(self, logs, index):
    with self.writer.as_default():
        for name, value in logs.items():
            tf.summary.scalar(name, value, step=index)
            self.step += 1
            self.writer.flush()

【讨论】:

    猜你喜欢
    • 2015-06-16
    • 2017-08-11
    • 1970-01-01
    • 2020-12-10
    • 1970-01-01
    • 1970-01-01
    • 2022-12-10
    • 1970-01-01
    • 2020-12-14
    相关资源
    最近更新 更多