diff --git a/examples/handwritten_number_recognition/README.md b/examples/handwritten_number_recognition/README.md new file mode 100644 index 0000000000000000000000000000000000000000..4fa6a7184cabd9728445dd062c3810cc0981c612 --- /dev/null +++ b/examples/handwritten_number_recognition/README.md @@ -0,0 +1,55 @@ +# MNIST +当我们学习编程的时候,编写的第一个程序一般是实现打印"Hello World"。而机器学习(或深度学习)的入门教程,一般都是 MNIST 数据库上的手写识别问题。原因是手写识别属于典型的图像分类问题,比较简单,同时MNIST数据集也很完备。 +本页将介绍如何使用PaddlePaddle高级API(hapi)实现MNIST,包括[安装](#installation)、[训练](#training-a-model)、[输出](#log)、[参数保存](#save)、[模型评估](#evaluation)。 + + +## 安装 + +在当前目录下运行样例代码需要PadddlePaddle的v2.0.0或以上的版本。如果你的运行环境中的PaddlePaddle低于此版本,请根据安装文档中的说明来更新PaddlePaddle。 + +## 训练 +可以通过如下的方式启动训练: +``` +python mnist.py +``` +上面的方式默认使用的静态图模式,切换动态图模式训练可以加```--dynamic``` +``` +python mnist.py --dynamic +``` +多卡进行模型训练,启动训练的方式: +``` +python -m paddle.distributed.launch mnist.py +``` + +## 输出 +执行训练开始后,将得到类似如下的输出。 +``` +Epoch 1/10 +step 10/469 - loss: 2.4547 - acc_top1: 0.1273 - acc_top2: 0.2305 - 94ms/step +step 20/469 - loss: 1.2578 - acc_top1: 0.3063 - acc_top2: 0.4316 - 48ms/step +step 30/469 - loss: 0.7918 - acc_top1: 0.4344 - acc_top2: 0.5638 - 33ms/step +step 40/469 - loss: 0.6947 - acc_top1: 0.5148 - acc_top2: 0.6412 - 25ms/step +step 50/469 - loss: 0.5452 - acc_top1: 0.5731 - acc_top2: 0.6959 - 20ms/step +step 60/469 - loss: 0.4184 - acc_top1: 0.6133 - acc_top2: 0.7314 - 17ms/step +step 70/469 - loss: 0.5143 - acc_top1: 0.6423 - acc_top2: 0.7595 - 15ms/step +step 80/469 - loss: 0.5688 - acc_top1: 0.6658 - acc_top2: 0.7808 - 13ms/step +... +``` + +## 参数保存 +训练好的模型默认会保存在```mnist_checkpoint/```文件加下,可以通过```--output-dir```命令来指定你想要保存的文件夹位置。 + + +## 模型评估 +执行如下命令进行评估,```--resume```后面指定训练好的模型路径 +``` +python mnist.py --resume mnist_checkpoint/final.pdparams --eval-only +``` +切换动态图模式评估: +``` +python mnist.py --resume mnist_checkpoint/final.pdparams --eval-only +``` +多卡评估 +``` +python -m paddle.distributed.launch mnist.py --resume mnist_checkpoint/final.pdparams --eval-only +```