neural-network - 使用 Keras 评估模型时的测试分数与测试准确性

标签 neural-network keras

我使用的是用 Keras 库实现的神经网络,下面是训练期间的结果。最后,它会打印出测试分数和测试准确度。我无法确切地弄清楚分数代表什么,但我假设的准确性是运行测试时正确的预测数量。

Epoch 1/15 1200/1200 [==============================] - 4s - loss: 0.6815 - acc: 0.5550 - val_loss: 0.6120 - val_acc: 0.7525

Epoch 2/15 1200/1200 [==============================] - 3s - loss: 0.5481 - acc: 0.7250 - val_loss: 0.4645 - val_acc: 0.8025

Epoch 3/15 1200/1200 [==============================] - 3s - loss: 0.5078 - acc: 0.7558 - val_loss: 0.4354 - val_acc: 0.7975

Epoch 4/15 1200/1200 [==============================] - 3s - loss: 0.4603 - acc: 0.7875 - val_loss: 0.3978 - val_acc: 0.8350

Epoch 5/15 1200/1200 [==============================] - 3s - loss: 0.4367 - acc: 0.7992 - val_loss: 0.3809 - val_acc: 0.8300

Epoch 6/15 1200/1200 [==============================] - 3s - loss: 0.4276 - acc: 0.8017 - val_loss: 0.3884 - val_acc: 0.8350

Epoch 7/15 1200/1200 [==============================] - 3s - loss: 0.3975 - acc: 0.8167 - val_loss: 0.3666 - val_acc: 0.8400

Epoch 8/15 1200/1200 [==============================] - 3s - loss: 0.3916 - acc: 0.8183 - val_loss: 0.3753 - val_acc: 0.8450

Epoch 9/15 1200/1200 [==============================] - 3s - loss: 0.3814 - acc: 0.8233 - val_loss: 0.3505 - val_acc: 0.8475

Epoch 10/15 1200/1200 [==============================] - 3s - loss: 0.3842 - acc: 0.8342 - val_loss: 0.3672 - val_acc: 0.8450

Epoch 11/15 1200/1200 [==============================] - 3s - loss: 0.3674 - acc: 0.8375 - val_loss: 0.3383 - val_acc: 0.8525

Epoch 12/15 1200/1200 [==============================] - 3s - loss: 0.3624 - acc: 0.8367 - val_loss: 0.3423 - val_acc: 0.8650

Epoch 13/15 1200/1200 [==============================] - 3s - loss: 0.3497 - acc: 0.8475 - val_loss: 0.3069 - val_acc: 0.8825

Epoch 14/15 1200/1200 [==============================] - 3s - loss: 0.3406 - acc: 0.8500 - val_loss: 0.2993 - val_acc: 0.8775

Epoch 15/15 1200/1200 [==============================] - 3s - loss: 0.3252 - acc: 0.8600 - val_loss: 0.2960 - val_acc: 0.8775

400/400 [==============================] - 0s

Test score: 0.299598811865

Test accuracy: 0.88



看着Keras documentation ,我还是不明白分数是什么。对于评估功能,它说:

Returns the loss value & metrics values for the model in test mode.



我注意到的一件事是,当测试准确度较低时,分数较高,而当准确度较高时,分数较低。

最佳答案

作为引用,代码的两个相关部分:

model.compile(loss='binary_crossentropy',
              optimizer='adam',
              metrics=['accuracy'])

score, acc = model.evaluate(x_test, y_test,
                            batch_size=batch_size)
print('Test score:', score)
print('Test accuracy:', acc)

分数是对给定输入的损失函数的评估。

训练网络是寻找最小化损失函数(或成本函数)的参数。

这里的成本函数是binary_crossentropy .

对于目标 T 和网络输出 O,二元交叉熵可以定义为

f(T,O) = -(T*log(O) + (1-T)*log(1-O) )

所以你看到的分数就是对它的评价。

如果你给它输入一批输入,它很可能会返回平均损失。

所以是的,如果您的模型具有较低的损失(在测试时),它通常应该具有较低的预测误差。

关于neural-network - 使用 Keras 评估模型时的测试分数与测试准确性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43589842/

相关文章:

python - 为什么 CPU 上的 Keras LSTM 比 GPU 快三倍?

deep-learning - Keras:多个大型数据集的批量训练

python - 评估模型给出的准确度不等于 sklearn 分类报告准确度

python - Tensorflow 形状不匹配

python - ValueError : could not broadcast input array from shape (11253, 1) 进入形状 (11253)

python - 为什么这种反向传播实现无法正确训练权重?

python - Tensorflow 3 channel 颜色输入顺序

python - 神经网络Python错误 "Failed to get convolution algorithm"

machine-learning - 纪元大小是否需要是批量大小的精确倍数?

Keras Dropout 层模型预测