我定义了Sequential
模型。以下是模型的input=model.input
和output=model.output
:
(Pdb) input
<tf.Tensor 'input_img_1:0' shape=(?, 28, 28, 1) dtype=float32>
(Pdb) output
<tf.Tensor 'model_1/activation_7/Softmax:0' shape=(?, 10) dtype=float32>
之后我按如下方式提取logits:logits, = output.op.inputs
,然后是logits
:
(Pdb) logits
<tf.Tensor 'model_1/dense_3/BiasAdd:0' shape=(?, 10) dtype=float32>
为什么这样做?
(Pdb) Model(input, output)
<keras.engine.training.Model object at 0x7f6917272198>
但这不是吗?
(Pdb) Model(input, logits)
*** TypeError: Output tensors to a Model must be Keras tensors. Found: Tensor("model_1/dense_3/BiasAdd:0", shape=(?, 10), dtype=float32)
鉴于logits
和output
都是tf.Tensor
。我还尝试将logits
包裹在Lambda
图层周围,如logits = Lambda((lambda x: x))(logits)
。
现在Model(input, logits)
的错误是*** AttributeError: 'Tensor' object has no attribute '_keras_history'