我正在学习转学,请注意,两者之间没有区别
letterModel = Model(inputs=trained.get_layer('input').output, outputs = output)
和
letterModel = Model(inputs=trained.input, outputs=output)
是真的吗?我不明白如何将Input层的输出用作新模型的输入。
答案 0 :(得分:1)
您的假设似乎是正确的。 trained.get_layer('input').output
和trained.input
等于张量。为了验证,我加载了Keras Model
对象:
>>> import tensorflow as tf
>>> model = tf.keras.models.load_model('model.h5')
1)从模型中获取第一层Input
并打印其输出张量。
注意:您使用
model.get_layer( 'input' )
来获取输入层 该模型。我将model.layers[0]
用于相同的目的。
>>> model.layers[0].output
<tf.Tensor 'input_1:0' shape=(?, 49152) dtype=float32>
2)同样,打印model
输入张量。
>>> model.input
[<tf.Tensor 'input_1:0' shape=(?, 49152) dtype=float32>, <tf.Tensor 'input_2:0' shape=(?, 49152) dtype=float32>]
该模型打印了两个张量的列表,因为该模型有两个
Input
层。如您所见,第一个张量等于打印的张量 在(1)中。
3)我们可以通过Boolean
表达式对此进行检查。
>>> model.input[0] == model.layers[0].output
True