使用logits作为输出构造新的keras模型

时间:2017-11-14 20:36:24

标签: python python-3.x tensorflow keras keras-layer

我定义了Sequential模型。以下是模型的input=model.inputoutput=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)

鉴于logitsoutput都是tf.Tensor。我还尝试将logits包裹在Lambda图层周围,如logits = Lambda((lambda x: x))(logits)

现在Model(input, logits)的错误是*** AttributeError: 'Tensor' object has no attribute '_keras_history'

0 个答案:

没有答案