使用路透社数据集(keras)进行预测时,我得到的结果是随机小数,而不是标签

问题描述 投票:0回答:1
predict = model.predict([test_rev])
print(predict[0])

当我预测时,我没有得到整数响应。我在打印预测时会收到此信息。

[4.4018452e-04 2.4254888e-22 1.6247647e-09 4.2529980e-09 7.2756829e-04
 6.1561005e-17 3.3205017e-15 3.5127187e-30 0.0000000e+00 9.9167752e-01
 6.9959722e-03 2.3998765e-21 1.8085532e-28 1.9898523e-32 6.6035522e-05
 1.1132150e-05 7.7152867e-12 0.0000000e+00 4.4573697e-19 6.5994698e-32
 0.0000000e+00 2.7726415e-27 7.3214098e-05 1.1313366e-20 4.9778610e-15
 3.9078455e-19 3.2378189e-09 1.4324050e-11 8.3694449e-06 9.1412790e-29
 7.0625376e-22 9.6534443e-09 1.8924939e-09 5.1607133e-17 1.2352057e-34
 4.0832067e-25 5.2552947e-18 3.6620362e-09 1.9062639e-13 1.1968603e-26
 1.0563007e-36 1.5859290e-16 9.0435520e-11 2.8228308e-21 1.3889628e-14
 2.4071821e-15]

但不是这个:

[3]

这是我的完整代码:

import tensorflow as tf
from tensorflow import keras
import numpy as np



data = keras.datasets.reuters

(train_data, train_label), (test_data, test_label) = data.load_data(num_words=10000)

train_data = keras.preprocessing.sequence.pad_sequences(train_data, value=0, padding="post", maxlen=250)
test_data = keras.preprocessing.sequence.pad_sequences(test_data, value=0, padding="post", maxlen=250)

print(train_data)
print(train_label)


word_index = data.get_word_index()


print(word_index)


model = keras.Sequential()
model.add(keras.layers.Embedding(10000, 16))
model.add(keras.layers.GlobalAveragePooling1D())
model.add(keras.layers.Dense(300, activation="relu"))
model.add(keras.layers.Dense(180, activation="relu"))
model.add(keras.layers.Dense(64, activation="relu"))
model.add(keras.layers.Dense(46, activation="softmax"))

model.compile(optimizer="adam", loss="sparse_categorical_crossentropy", metrics=["accuracy"])

xdata1 = train_data[:10000]
xdata2 = train_data[10000:]

ylabel1 = train_label[:10000]
ylabel2 = train_label[10000:]

fitModel = model.fit(xdata1, ylabel1, batch_size=512, epochs=60,verbose=1, validation_split=0.1)

results = model.evaluate(test_data, test_label)
print(results)
test_rev = test_data[0]
predict = model.predict([test_rev])
print(predict[0])

任何帮助将不胜感激。谢谢。

python tensorflow
1个回答
0
投票

通过在argmax值上应用predict,您可以获得最高的最终预测类别ID。在此,argmax给出具有最大值的列表的索引。

predict = model.predict([test_rev])
print(predict[0])

import numpy as np
class_id = np.argmax(predict[0])
print(class_id)
© www.soinside.com 2019 - 2024. All rights reserved.