使用 Keras 提取特征不包括 class 个标签
Feature extraction using Keras does not include class labels
我使用 Keras 在 MNIST 数据集上应用图像 class化,实现可用 here。我使用此实现,但添加了以下方法从经过训练的图像中提取特征:
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=",")
输出文件不包含 class 标签,即文件中的每一行都是一组特征,但没有 class 标签。有没有办法修改此方法,以便它还为每个提取的特征(即每一行)添加 class 标签?
您可以获得多个输出,因此特征和预测标签概率:
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
获得实际的 class 标签而不是概率,具体取决于模型。
我使用 Keras 在 MNIST 数据集上应用图像 class化,实现可用 here。我使用此实现,但添加了以下方法从经过训练的图像中提取特征:
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=",")
输出文件不包含 class 标签,即文件中的每一行都是一组特征,但没有 class 标签。有没有办法修改此方法,以便它还为每个提取的特征(即每一行)添加 class 标签?
您可以获得多个输出,因此特征和预测标签概率:
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
获得实际的 class 标签而不是概率,具体取决于模型。