4.1节中介绍了一个完整的MNIST手写数字体分类代码,这几乎是每一个入门深度学习的人都会运行的实验。一个比较好的代码阅读习惯既可以是从全局到局部,也可以是从局部到全局,这样才能建立起对代码的完整认识。目前开源的深度学习相关的项目非常多,但不论这些项目的代码量如何,基本上每个项目的代码都是分模块维护的,比如专门的数据读取模块、模型构建模块、参数配置模块等,这对于阅读复杂项目的代码尤其有帮助。因此希望读者能够逐渐养成这样的习惯,并应用在今后的代码书写中。
通过4.1节的介绍,相信你对整个训练代码有了一个直观的认识,接下来就将这份代码分解成几个小模块,包括训练参数配置、数据读取、网络结构搭建和训练模型四大部分,然后分别介绍每个模块的内容与作用。
4.2.1 训练参数配置
在大部分用Python实现的深度学习项目中,argparse模块是非常常见的,因为在Python中,argparse模块扮演着解析命令行参数的角色
。这是什么意思呢?前面介绍过这份代码保存在train_mnist_code4-1.py中,因此当你启动训练时,可以直接在train_mnist_code4-1.py文件所在的目录运行以下命令:
$ python train_mnist_code4