我正在训练一个模型,其输出是大小为 19 的 softmax 层。当我尝试model.predict(x)
时,对于每个输入,我得到的似乎是 19 个类的概率分布。我尝试了model.predict_classes
,得到了一个大小为 x
的 numpy 数组,每个输出等于 0。如何获得一个输出的热向量?
因此
,predcit_classes
的文档在某种程度上具有误导性,因为如果您仔细检查其实现,您会发现它仅适用于二元分类。为了解决您的问题,您可以通过以下方式使用numpy
库(基本上 - 函数argmax
):
import numpy as np
classes = np.argmax(model.predict(x), axis = 1)
.. 为了获得一个带有每个示例的类号的数组。为了获得一个独热向量 - 你可以通过以下方式使用keras
内置函数to_categorical
:
import numpy as np
from keras.utils.np_utils import to_categorical
classes_one_hot = to_categorical(np.argmax(model.predict(x), axis = 1))