在 Tensorflow 2.7.0 中用什么代替 predict_classes()?

What to use in place of predict_classes() in Tensorflow 2.7.0?

我正在尝试训练 NLP 神经机器翻译模型,并且在该代码中我使用的是 Keras 的顺序模型。我想以 类 的形式预测输出,但由于我使用的是 Tensorflow 2.7.0 并且 predict_classes() 现已贬值,我应该如何解决它?这是代码片段 -:

model = load_model('model.h1.24_jan_19')
preds = model.predict_classes(testX.reshape((testX.shape[0],testX.shape[1])))

这是我遇到的错误 -:

AttributeError Traceback (most recent call last)

in () 1 model = load_model('model.h1.24_jan_19') ----> 2 preds = model.predict_classes(testX.reshape((testX.shape[0],testX.shape[1])))

AttributeError: 'Sequential' object has no attribute 'predict_classes'

我认为没有直接替换,您需要使用 model.predict() 的输出并手动将它们映射到 class 标签列表,然后选择置信度最高的标签。

一个简单的例子:

classes = ['a', 'b']
results = model.predict(testX.reshape((testX.shape[0],testX.shape[1])))
# the results here will be a n array of confidence level, if the last layer of your model uses the softmax activation function.

class_predicted = classes[np.argmax(predictions)]  # this line gets the index of the highest confidence class and select from the classes list.

请注意,classes 列表中的标签顺序必须与您输入的标签顺序相同,因此您应该仔细检查一下。如果您使用的是像 tf.data.dataset 这样的 tensorflow API,那么您可以使用 dataset.class_names 属性来访问 class 列表。