如何从 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
我想查看 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