首页 > 解决方案 > 使用 Keras 进行特征提取不包括类标签

问题描述

我使用 Keras 在 MNIST 数据集上应用图像分类,这里提供了实现。我使用这个实现,但添加了以下方法来从训练的图像中提取特征:

def feature_extraction(model, x_test, path_to_save):
    extract = keras.Model(inputs=model.input, outputs=model.get_layer('dense_1').output)
    features = extract.predict(x_test)
    np.savetxt(path_to_save, features, delimiter=",")

输出文件不包含类标签,即文件中的每一行都是一组特征但没有类标签。有没有办法修改这个方法,以便它也添加每个提取特征的类标签(即每一行)?

标签: machine-learningkerasfeature-extractionconvolutional-neural-network

解决方案


您可以获得多个输出,因此特征和预测的标签概率:

extract = Model(model.input, [model.get_layer('dense_1').output, model.output])
features, labels = extract.predict(x_test)
labels = np.argmax(labels, axis=1)

预测现在将为您提供两个输出。您可能希望np.argmax获得实际的类标签,而不是取决于模型的概率。


推荐阅读