在Keras中训练分类问题时神经网络的准确率始终为0

我在制作泰坦尼克号分类问题的 neural network,但我的训练准确率始终为0。我检查了其他解决方案,但找不到有效的解决方法。损失在减少,但准确率为0。

model= keras.Sequential(    [     layers.Dense(10,activation="relu",input_shape=(8,)),     layers.Dense(10,activation="relu"),     layers.Dense(1,activation="sigmoid")    ])model.compile(optimizer='adam',loss='binary_crossentropy',metrics=['Accuracy'])model.fit(X_train,y_train,batch_size=64,epochs=200,verbose=2)

输入数据中没有空值。

Survived     0Age          0Fare         0Total_mem    0female       0Q            0S            02            03            0dtype: int64

以下是一些显示0准确率的值。

Epoch 1/20012/12 - 0s - loss: 0.7219 - accuracy: 0.0000e+00Epoch 2/20012/12 - 0s - loss: 0.7028 - accuracy: 0.0000e+00Epoch 3/20012/12 - 0s - loss: 0.6879 - accuracy: 0.0000e+00Epoch 4/20012/12 - 0s - loss: 0.6749 - accuracy: 0.0000e+00Epoch 5/20012/12 - 0s - loss: 0.6626 - accuracy: 0.0000e+00Epoch 6/20012/12 - 0s - loss: 0.6515 - accuracy: 0.0000e+00Epoch 7/20012/12 - 0s - loss: 0.6397 - accuracy: 0.0000e+00Epoch 8/20012/12 - 0s - loss: 0.6272 - accuracy: 0.0000e+00Epoch 9/20012/12 - 0s - loss: 0.6143 - accuracy: 0.0000e+00Epoch 10/20012/12 - 0s - loss: 0.6005 - accuracy: 0.0000e+00Epoch 11/20012/12 - 0s - loss: 0.5871 - accuracy: 0.0000e+00Epoch 12/20012/12 - 0s - loss: 0.5750 - accuracy: 0.0000e+00

回答:

首先,你错误地使用了metrics=['accuracy']。其次,这指向了一个更深层次的错误,我认为这是无意的。我已经在tensorflow仓库上提出了一个问题。希望有人会回应。

Keras无法识别度量Accuracy。Keras未能正确调用此处所需的MeanMetricWrapper。


问题的解决方案

修复这个问题后,度量值开始显示正确的值。

from tensorflow import kerasfrom tensorflow.keras import layersX_train = np.random.random((100,8))y_train = np.random.randint(0,2,(100,))model = keras.Sequential(    [     layers.Dense(10,activation="relu",input_shape=(8,)),     layers.Dense(10,activation="relu"),     layers.Dense(1,activation="sigmoid")    ])model.compile(optimizer='adam',loss='binary_crossentropy',metrics=['accuracy'])model.fit(X_train,y_train,batch_size=64,epochs=5,verbose=2)
Epoch 1/52/2 - 0s - loss: 0.6926 - accuracy: 0.5500Epoch 2/52/2 - 0s - loss: 0.6915 - accuracy: 0.5500Epoch 3/52/2 - 0s - loss: 0.6909 - accuracy: 0.5600Epoch 4/52/2 - 0s - loss: 0.6900 - accuracy: 0.5700Epoch 5/52/2 - 0s - loss: 0.6894 - accuracy: 0.5600<tensorflow.python.keras.callbacks.History at 0x7f90e5f7d250>

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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