首页 > 解决方案 > tensorflow2: keras: model.fit() 回调和急切模式

问题描述

我正在使用 keras API 运行 Tensorflow 2.1。我遵循以下编码风格:

    model = tf.keras.Sequential()
    ...
    model.fit(..., callbacks=callbacks)

现在,我想将一些中间层张量值保存为图像摘要(作为第 n 个训练步骤中发生的示例)。为了做到这一点,我实现了我自己的回调类。我还了解了如何keras.callbacks.TensorBoard实现,因为它可以将图层权重保存为图像摘要。我在我的中执行以下操作on_epoch_end

tensor = self.model.get_layer(layer_name).output

with context.eager_mode():
    with ops.init_scope():
        tensor = tf.keras.backend.get_value(tensor)
    tf.summary.image(layer_name, tensor, step=step, max_outputs=1)

不幸的是,我仍然遇到与渴望/图形模式相关的问题:

    tensor = tf.keras.backend.get_value(tensor)
  File "/home/matwey/lab/venv/lib/python3.6/site-packages/tensorflow_core/python/keras/backend.py", line 3241, in get_value
    return x.numpy()
AttributeError: 'Tensor' object has no attribute 'numpy'

不幸的是,关于如何正确组合 keras 回调和tf.summary.image. 我该如何克服这个问题?

更新: tf_nightly-2.2.0.dev20200427 具有相同的行为。

标签: tensorflowkerastensorflow2.0tf.keras

解决方案


推荐阅读