如何从预训练的 ResNet 模型 Keras 的一层中提取特征

How to extract features from a layer of the pretrained ResNet model Keras

我用 Resnet3D 训练了一个模型,我想提取一层的神经元。我计划将它们与 SVM 分类器一起使用。如何提取这些权重并将它们放入 numpy 数组?

通过keras加载权重

model = Resnet3DBuilder.build_resnet_18((128, 96, 96, 3), nClass[0])
model.load_weights('drive/app/models/3d_resnet_modelq.hdf5')

提取一层

dns = model.layers[-1].output

现在我该怎么办?

如果您只想可视化特征,在纯 Keras 中,您可以定义一个 Model 并将所需层作为输出:

from keras.models import Model

model_cut = Model(inputs=model.inputs, output=model.layers[-1].output)
features = model_cut.predict(x)  # Assuming you have your images in x

请注意,要使其正常工作,model 必须至少编译一次。