首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >categorical_accuracy值是什么意思?categorical_accuracy 100%,但数据显示错误预测

categorical_accuracy值是什么意思?categorical_accuracy 100%,但数据显示错误预测
EN

Stack Overflow用户
提问于 2019-07-11 16:33:30
回答 1查看 467关注 0票数 1

在训练中,Keras的categorical_accuracy值为100%。但是同样的训练数据,我已经将它的输出保存到一个文件中,显示了几个(实际上是相当多的)数据,这些数据被分类到错误的类别。我已经检查了标签的输入文件,它是正确的。

categorical_accuracy衡量的是什么?有没有更好的指标来调试LSTM?

代码语言:javascript
复制
model = Sequential()
model.add(LSTM(64, batch_input_shape=(7763, TimeStep.TIME_STEP + 1, 10), return_sequences=True, activation='relu'))
model.add(LSTM(128, activation='relu', return_sequences=True))
model.add(LSTM(64, activation='relu', return_sequences=True))
model.add(LSTM(32, activation='relu'))
model.add(Dense(3, activation='softmax'))

model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=[categorical_accuracy])
history = model.fit(TimeStep.fodder, TimeStep.target, epochs=300, batch_size=7763)





Epoch 400/400

 7763/31052 [======>.......................] - ETA: 1s - loss: 2.7971e-04 - categorical_accuracy: 1.0000
15526/31052 [==============>...............] - ETA: 1s - loss: 3.0596e-04 - categorical_accuracy: 1.0000
23289/31052 [=====================>........] - ETA: 0s - loss: 3.0003e-04 - categorical_accuracy: 1.0000
31052/31052 [==============================] - 2s 78us/step - loss: 2.9869e-04 - categorical_accuracy: 1.0000
EN

回答 1

Stack Overflow用户

发布于 2019-07-11 16:48:34

keras github repo中,我们有categorical_accuracy函数。

代码语言:javascript
复制
def categorical_accuracy(y_true, y_pred):
    return K.cast(K.equal(K.argmax(y_true, axis=-1),
                          K.argmax(y_pred, axis=-1)),
                  K.floatx())

在这里我们可以看到,如果y_true的最大值的位置与y_pred相同,则返回1,否则返回0。100%的准确率应该表明y_true的最大值的位置始终与y_pred相同(此处的位置是类,因此始终预测相同的类)。

一个可能的原因是您只有一个输出(单个二进制类)。因此,对于y_true和y_pred,最大值的位置始终为0。

在这种情况下,请改用binary_accuracy

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56984897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档