【问题标题】:Keras model.predict for multinomial logistic regressionKeras model.predict 用于多项逻辑回归
【发布时间】:2017-01-10 13:21:07
【问题描述】:
我正在训练一个模型,其输出是大小为 19 的 softmax 层。当我尝试 model.predict(x) 时,对于每个输入,我得到的似乎是 19 个类的概率分布。我尝试了model.predict_classes,得到了一个大小为x 的numpy 数组,每个输出等于0。我怎样才能得到一个输出的热向量?
【问题讨论】:
标签:
python
machine-learning
neural-network
keras
data-science
【解决方案1】:
所以predcit_classes 的文档在某种程度上具有误导性,因为如果您仔细检查它的implementation,您会发现它仅适用于二进制分类。为了解决您的问题,您可以通过以下方式使用numpy 库(基本上是一个函数argmax):
import numpy as np
classes = np.argmax(model.predict(x), axis = 1)
.. 为每个示例获取一个带有类号的数组。为了获得 one-hot 向量 - 您可以通过以下方式使用 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))