如何仅预测标签而不是概率

当我预测输出时,我得到的是每个标签的概率(例如输出 = [0.002345, 0.997655]),而不是正确的标签。有没有办法只得到标签而不是它们的概率?

import tflearn
from tflearn.layers.core import input_data, dropout, fully_connected
from tflearn.layers.estimator import regression
from tflearn.data_utils import load_csv
import numpy as np
data, labels = load_csv("C:/Users/Animkush/Desktop/train.csv", categorical_labels=True, n_classes=2, target_column=30)
def preprocess(data, col):
    for id in sorted(col, reverse=True):
        [r.pop(id) for r in data]
    return np.array(data, dtype=np.float32)
ignore = [0]
data = preprocess(data, ignore)
network = input_data(shape=[None, 28], name="input")
network = tflearn.fully_connected(network, 32, activation="relu")
network = tflearn.fully_connected(network, 64, activation="relu")
network = tflearn.fully_connected(network, 128, activation="relu")
network = tflearn.fully_connected(network, 64, activation="relu")
network = tflearn.fully_connected(network, 32, activation="relu")
network = dropout(network, 0.8)
network = fully_connected(network, 2, activation='softmax')
network = regression(network, optimizer='adam', learning_rate=0.001, loss='categorical_crossentropy', name='targets')
model = tflearn.DNN(network)
model.fit(data, labels, n_epoch=100, batch_size=500, show_metric=True)
p = np.array([[-3.043540624,-3.157307121,1.08846278,2.288643618,1.35980513,-1.064822523,0.325574266,-0.067793653,-0.270952836,-0.838586565,-0.414575448,-0.50314086,0.676501545,-1.692028933,2.000634839,0.666779696,0.599717414,1.725321007,0.28334483,2.102338793,0.661695925,0.435477209,1.375965743,-0.293803153,0.279798032,-0.145361715,-0.252773123,0.035764225]])
print(model.predict(p))

回答:

Numpy方法argmax通常用于此目的:

import numpy as np
p = np.array([0.002345, 0.997655]) # 概率数组,按照您的示例
y = np.argmax(p) # 硬分类
y
# 1
# 另一个示例:
p = np.array([0.78, 0.22])
y = np.argmax(p)
y
# 0

Related Posts

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注