Keras 如何通过Sequential()函数获取未连接的中间层的输出?

Keras 如何通过Sequential()函数获取未连接的中间层的输出?,keras,output,layer,Keras,Output,Layer,我是Keras的新手,但我以前使用过纯tensorflow。我正在尝试调试下面的一些网络(我将只复制一个片段。丢失函数、优化器等对于我来说对于这段代码来说并不重要) 我已经看到了一些如何将每个操作添加到Sequential()函数中的示例(例如,已解释但使用add()函数的示例)。是否有一种方法可以检查每个层的输出,而无需将它们添加到模型本身(也可以使用Tensorflow进行会话)?最好是制作一个输出这些层的模型: modelToOutputAll = Model(main_input, [e

我是Keras的新手,但我以前使用过纯tensorflow。我正在尝试调试下面的一些网络(我将只复制一个片段。丢失函数、优化器等对于我来说对于这段代码来说并不重要)


我已经看到了一些如何将每个操作添加到Sequential()函数中的示例(例如,已解释但使用add()函数的示例)。是否有一种方法可以检查每个层的输出,而无需将它们添加到模型本身(也可以使用Tensorflow进行会话)?

最好是制作一个输出这些层的模型:

modelToOutputAll = Model(main_input, [enc_conv1, enc_bn1, maxp1_4, enc_conv2, enc_bn2, enc_conv3, enc_bn3, concat1_5])
对于培训,保留一个只有最终输出的模型:

modelForTraining = Model(main_input,concat1_5)
两个模型使用完全相同的权重,因此训练一个会改变另一个。你可以使用每一个来做你现在需要做的事情

  • 使用
    modelForTraining.fit(xTrain、yTrain等)进行训练
  • 使用
    modelToOutputAll.predict(xInput)
modelForTraining = Model(main_input,concat1_5)