如何从 keras 层的输出中打印数据?

How to print the data from the output of a keras layer?

我想查看 keras 模型 每一层的输出。到目前为止我有这样的东西

for layer in model.layers:
  print(layer.output)

我得到这样的输出:

Tensor("word_input_6:0", shape=(None, 198), dtype=int32)
Tensor("embedding_6/Identity:0", shape=(None, 198, 100), dtype=float32)
Tensor("lstm/Identity:0", shape=(None, 100), dtype=float32)
Tensor("main_output_8/Identity:0", shape=(None, 6), dtype=float32)

但我想看看张量里面有什么。有什么办法可以看到吗?

有几个选项可以获取每一层的输出。你可以。
(1) 定义一个keras函数并为每一层评估它,或者。
(2)定义函数模型和运行predict方法得到输出。

有关这些方法的更多详细信息,请参见 Whosebug_question ()

根据您的要求,您可以select选择其中之一。我 select 编辑了第一个并用简单的 mnist 示例进行了演示。完整示例代码 here.

#Getting output of each layer
from tensorflow.keras import backend as K

inp = model.input                                           # input 
outputs = [layer.output for layer in model.layers]          # all layer outputs
functors = [K.function([inp], [out]) for out in outputs]    # evaluation functions

# Testing
test = test = x_test[1]
count = 0
for func in functors:
  print('\n')
  print("Layer Name: ",layer_names[count])
  print('\n')
  print(func([test]))
  count+=1