小编Pse*_*Nym的帖子

'TensorBoard' 对象在使用 Callback.on_epoch_end() 时没有属性 'writer' 错误

由于 Model.train_on_batch() 不接受回调输入,我尝试使用 Callback.on_epoch_end() 将我的损失写入张量板

但是,尝试运行 on_epoch_end() 方法会导致标题错误,“TensorBoard”对象没有属性“writer”。我的原始写入 tensorboard 问题的其他解决方案包括调用 Callback.writer 属性,并且运行这些解决方案会出现相同的错误。此外,TensorBoard 类的 tensorflow 文档没有提到 writer 属性

我是一个新手程序员,但在我看来 on_epoch_end() 方法也在某个时候调用了 writer 属性,但我很困惑为什么该函数会使用不存在的属性

这是我用来创建回调的代码:

logdir = "./logs/"
tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir=logdir)
Run Code Online (Sandbox Code Playgroud)

这是我尝试在训练循环中运行的回调代码:

logs = {
            'encoder':encoder_loss[0],
            'discriminator':d_loss,
            'generator':g_loss,
        }
tensorboard_callback.on_epoch_end(i, logs)
Run Code Online (Sandbox Code Playgroud)

其中encoder_loss、d_loss和g_loss是我的标量,i是批号

错误是由于我的一些不正确的代码造成的,还是 tensorflow 试图引用不存在的东西?

另外,如果有人知道使用 Model.train_on_batch 写入张量板的另一种方法,那也可以解决我的问题

python-3.x keras tensorflow

5
推荐指数
1
解决办法
904
查看次数

具有logits的tensorflow稀疏分类交叉熵

我是一名新手程序员,正在尝试遵循本指南。但是,我遇到了一个问题。该指南说将损失函数定义为:

def loss(labels, logits):
    return tf.keras.losses.sparse_categorical_crossentropy(labels, logits, from_logits=True)
Run Code Online (Sandbox Code Playgroud)

这给了我以下错误:

sparse_categorical_crossentropy()获得了意外的关键字参数'from_logits'

我的意思是这from_logits是函数中未指定的参数,该参数受文档支持,该文档tf.keras.losses.sparse_categorical_crossentropy()只有两个可能的输入。

有没有一种方法可以指定正在使用的日志,或者甚至是必要的?

python tensorflow

4
推荐指数
2
解决办法
2111
查看次数

标签 统计

tensorflow ×2

keras ×1

python ×1

python-3.x ×1