model.predict_classes 已弃用 - 可以用什么代替?

问题描述 投票:0回答:5

我一直在尝试重新访问我的 python 代码以在神经网络上进行预测,并且在运行代码后我意识到

model.predict_classes
自 2021 年 1 月 1 日起已被弃用。

请您支持我,让我知道我可以用什么来代替我的代码?

代码行是:

y_pred_nn = model.predict_classes(X_test)

问题:

NameError
Traceback (most recent call last)
<ipython-input-11-fc1ddbecb622> in <module>
----> 1 print(y_pred_nn)

NameError: name 'y_pred_nn' is not defined
python tensorflow keras neural-network
5个回答
15
投票

如何处理此问题的最佳解释位于:

https://androidkt.com/get-class-labels-from-predict-method-in-keras/

首先使用

model.predict()
提取类别概率。然后根据班级数量执行以下操作:

二元分类

使用阈值选择确定类别 0 或 1 的概率

np.where(y_pred > threshold, 1,0)

例如使用阈值 0.5

多级分类

选择概率最高的类别

np.argmax(predictions, axis=1)

多标签分类

如果每个示例可以有多个输出类,请使用阈值来选择应用哪些标签。

y_pred = model.predict(x, axis=1)
[i for i,prob in enumerate(y_pred) if prob > 0.5]

6
投票

如果您的模型执行多类分类(例如,如果它使用 softmax 最后层激活),请使用:

np.argmax(model.predict(x), axis=-1)

如果您的模型执行二元分类(例如,如果它使用 sigmoid 最后一层激活),请使用:

(model.predict(X_test) > 0.5).astype("int32")

2
投票

model.predict_classes
已弃用,如 @Kaveh 提到的,请改用
model.predict()
函数。

np.argmax(model.predict(x_test), axis=-1)

要了解更多有关

model.predict()
的信息,请查看此链接


0
投票

model.predict_classes()
提供参数的输出类。 由于某些原因,它已从 Keras 中删除。 相反,如果您使用
model.predict()
,您最终将获得输入样本的输出预测。主要用于大量输入的批量处理。尽管它们不是同一件事,但您会知道自己的目标是什么。


0
投票

model.predict_classes
可以用下面的代码片段代替

不过在此之前我们需要提一下以下几点:

ANN_model.fit(X_train,y_train, epochs=150) #Fitting the model
y_ANN_prediction = ANN_model.predict(X_test) #predicting y data from the fitted model 

这将预测输入#1落到其中一个输出的概率

例如: 对于第 1 行或输入 1,如果我们请求 3 个概率输出 [0.03745461, 0.53267044, 0.42987496],我们可以获得以下结果。换句话说,这一行表示中产阶级或 [1] 是输入最有可能落入的类别


要获取表示最高概率索引位置的 numpy 数组,您需要执行以下操作:

y_ANN_prediction_classes = []
for x in y_ANN_prediction: 
    y_ANN_prediction_classes.append(np.argmax(x))

#Conver the list back to a numpy arrach
y_ANN_prediction_classes_arr = np.array(y_ANN_prediction_classes)

y_ANN_prediction_classes_arr #-> This will return [1] for [0.03745461, 0.53267044, 0.42987496]. which represents the index of the highest probability 
© www.soinside.com 2019 - 2024. All rights reserved.