如何打印 Keras 张量的值?

新手上路,请多包涵

我正在实现自己的 Keras 损失函数。如何访问张量值?

我试过的

def loss_fn(y_true, y_pred):
    print y_true

它打印

Tensor("target:0", shape=(?, ?), dtype=float32)

是否有任何 Keras 函数可以访问 y_true 值?

原文由 ronroo 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 760
1 个回答

Keras 的后端有 print_tensor 可以让你做到这一点。您可以这样使用它:

 import keras.backend as K

def loss_fn(y_true, y_pred):
    y_true = K.print_tensor(y_true, message='y_true = ')
    y_pred = K.print_tensor(y_pred, message='y_pred = ')
    ...

该函数返回一个相同的张量。当评估该张量时,它将打印其内容,前面是 message 。来自 Keras 文档

请注意, print_tensor 返回一个与 x 相同的新张量,应在以下代码中使用。否则在评估期间不考虑打印操作。

所以,一定要在之后使用张量。

原文由 nroulet 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题