如何打印 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 许可协议

阅读 758
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 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题