我应该将分类输出转换为整数,如何转换?

时间:2019-05-10 08:50:32

标签: tensorflow machine-learning nlp

我正在使用神经网络对文本进行分类,训练数据的标签为0或1(即二进制分类)。它在训练和评估过程中效果很好,但是预测输出是浮点值,而不是整数0或1。我怎么总是能得到整数结果?我需要手动转换它们还是更改网络参数?

model = Sequential()
e = Embedding(vocab_size, embedding_dim, weights=[embedding_matrix], 
input_length=max_length, trainable=False)
model.add(e)
model.add(Dropout(0.2))
model.add(Flatten())
model.add(Dense(1, activation='sigmoid'))

# compile
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['acc'])
print(model.summary())

# fit
model.fit(padded_docs, labels, epochs=5, verbose=2)

# eval
loss, accuracy = model.evaluate(padded_docs, labels, verbose=0)
print('Accuracy: %f' % (accuracy*100))

# predict
result = model.predict(padded_docs_test, verbose=2)

1 个答案:

答案 0 :(得分:1)

您需要通过设置阈值来手动转换它们,例如:

threshold = 0.5

result = model.predict(padded_docs_test, verbose=2)
result = result > threshold

这将给出二进制预测。计算二进制精度时,Keras的阈值为0.5。