Python 如何获得中间层的输出(特征提取)?

Python 如何获得中间层的输出(特征提取)?,python,tensorflow,keras,feature-extraction,Python,Tensorflow,Keras,Feature Extraction,我想提取光学图像的特征并将其保存到numpy阵列中。我见过类似的问题,也可以在这里看到:,但不知道如何去做。Keras文档确实详细说明了如何去做。如果您已经定义了您的模型model\u full,您可以创建另一个模型,它只是其中的一部分-从输入层到您感兴趣的层 model_part = Model( inputs=model_full.input, outputs=model_full.get_layer("intermed_layer").output) 然后,您

我想提取光学图像的特征并将其保存到numpy阵列中。我见过类似的问题,也可以在这里看到:,但不知道如何去做。

Keras文档确实详细说明了如何去做。如果您已经定义了您的模型
model\u full
,您可以创建另一个模型,它只是其中的一部分-从输入层到您感兴趣的层

model_part = Model(
  inputs=model_full.input,
  outputs=model_full.get_layer("intermed_layer").output)
然后,您应该能够使用以下方法从中间层获得输出:

intermed_output = model_part(data)
为了做到这一点,您只需要定义一个
model\u full
,我假设您已经定义了

第二种方法 您还可以使用内置的Keras函数,我想您也已经在文档中看到了。一开始它可能看起来有点复杂,但它只是创建了一个具有绑定值的函数,即

from keras import backend as K

get_3rd_layer_output = K.function(
  [model.layers[0].input], # param 1 will be treated as layer[0].output
  [model.layers[3].output]) # and this function will return output from 3rd layer

# here X is param 1 (input) and the function returns output from layers[3]
output = get_3rd_layer_output([X])[0]

显然,必须再次定义
模型
。不确定除此之外是否还有其他要求。

这些示例的具体问题是什么?我猜是使用relu模型从jpg中提取特征,然后将它们保存到numpy数组中