You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Keras CNN示例在Google Colab中准确率远低于标注值的问题

问题:Keras MNIST CNN示例运行准确率远低于基线值?

我尝试运行Keras官方的MNIST CNN示例学习Keras,但文档标注的基线准确率为99.25%,远高于我在T4 GPU的Google Colab中直接复制代码运行得到的85%(0.8503000140190125)。运行输出如下:

x_train shape: (60000, 28, 28, 1)
60000 train samples
10000 test samples
Epoch 1/12
469/469 [==============================] - 8s 10ms/step - loss: 2.2807 - accuracy: 0.1435 - val_loss: 2.2415 - val_accuracy: 0.3414
Epoch 2/12
469/469 [==============================] - 4s 10ms/step - loss: 2.2157 - accuracy: 0.2814 - val_loss: 2.1615 - val_accuracy: 0.5900
Epoch 3/12
469/469 [==============================] - 4s 9ms/step - loss: 2.1305 - accuracy: 0.4081 - val_loss: 2.0526 - val_accuracy: 0.6552
Epoch 4/12
469/469 [==============================] - 4s 9ms/step - loss: 2.0150 - accuracy: 0.4893 - val_loss: 1.9049 - val_accuracy: 0.6928
Epoch 5/12
469/469 [==============================] - 5s 10ms/step - loss: 1.8653 - accuracy: 0.5421 - val_loss: 1.7169 - val_accuracy: 0.7290
Epoch 6/12
469/469 [==============================] - 4s 9ms/step - loss: 1.6864 - accuracy: 0.5822 - val_loss: 1.4985 - val_accuracy: 0.7573
Epoch 7/12
469/469 [==============================] - 5s 10ms/step - loss: 1.4975 - accuracy: 0.6175 - val_loss: 1.2778 - val_accuracy: 0.7841
Epoch 8/12
469/469 [==============================] - 4s 9ms/step - loss: 1.3218 - accuracy: 0.6478 - val_loss: 1.0859 - val_accuracy: 0.8070
Epoch 9/12
469/469 [==============================] - 5s 10ms/step - loss: 1.1783 - accuracy: 0.6739 - val_lloss: 0.9350 - val_accuracy: 0.8256
Epoch 10/12
469/469 [==============================] - 4s 10ms/step - loss: 1.0702 - accuracy: 0.6944 - val_loss: 0.8224 - val_accuracy: 0.8354
Epoch 11/12
469/469 [==============================] - 4s 9ms/step - loss: 0.9836 - accuracy: 0.7120 - val_loss: 0.7383 - val_accuracy: 0.8433
Epoch 12/12
469/469 [==============================] - 4s 9ms/step - loss: 0.9166 - accuracy: 0.7276 - val_loss: 0.6741 - val_accuracy: 0.8503
Test loss: 0.6741476655006409
Test accuracy: 0.8503000140190125oss: 0.9350 - val_accuracy: 0.8256

可见Colab中每个epoch耗时远低于文档说明,我想知道是否遗漏了关键设置,文档中提及的“仍有大量参数调优空间”是否意味着需自行调参才能达到99.25%的准确率?


回答

你的训练结果明显异常,核心问题大概率是数据未做归一化处理。MNIST数据集的像素值范围是0-255,直接输入模型会导致梯度不稳定、收敛缓慢,这和你看到的loss居高不下、accuracy提升缓慢完全吻合。

官方示例代码里必然包含了这一步关键预处理:

x_train = x_train.astype('float32') / 255
x_test = x_test.astype('float32') / 255

如果复制代码时遗漏了这部分,就会出现你遇到的低准确率问题。

关于基线准确率:文档标注的99.25%是该模型结构能达到的基准水平,默认代码无需额外调参就能接近这个数值(通常能到98%以上)。文档里说的“仍有大量参数调优空间”,是指在默认基础上,你还可以通过调整学习率、增加训练轮数、加入数据增强等手段进一步提升准确率,而非要求你必须调参才能达到基线。

另外,你提到的epoch耗时低于文档说明,这是因为T4 GPU的性能远优于文档编写时的硬件,属于正常情况,和准确率问题无关。


内容的提问来源于stack exchange,提问作者Joeytje50

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 03:16:19