keras第一个例程mnist_mlp.py解读
来源:互联网 发布:51单片机价格 编辑:程序博客网 时间:2024/06/05 20:13
装好keras后,马上运行了例程mnist_mlp.py(multilayer perceptron, 这个是多层神经网络),哇好牛逼,准确率98.4%,但是并不知道自己干了啥。好吧,啃代码。
1. 开头就懵了,数据集在哪呐。
好,从这句入手,找到mnist.py,
从网上下载了minst.pkl.gz,自己顺手下了下来,解压,打开,,,然而并看不懂。肿么办?
不怕,看这里:机器学习–读取mnist数据集
对于这个数据集的详情也可以参考这里:THE MNIST DATABASE of handwritten digits
2. 接着往下看代码,好多语句都不太清楚对这些数据做了什么。这就需要用到调试了。
这里使用pdb比较方便,参见Python单步调试
举个例子,比如在执行Y_train = np_utils.to_categorical(y_train, nb_classes)
查看y_train和Y_train变量,我们会发现,这条语句是把标签调整为我们所需要的格式啦。如图:
或者我们也可以使用python自带的logging来调试,也很方便,参见python logging模块使用教程 , Python日志输出——logging模块
3. 后边的自己一步一步执行看一下,并同时结合理论知识学习吧
A. 程序读取数据集并保存到变量(X_train, y_train)和(X_test, y_test)中,其中X_train大小为60000*28*28,y_train为60000*1,X_test为10000*28*28,y_train为10000*1;在预处理中,程序把X_train和X_test分别变形为60000*784和10000*784 (即将每幅图片变为一个向量),并将其数据类型变为float,数据大小由0~255归一化到0~1;将标签变为二进制的向量(比如:5变为[0 0 0 0 0 1 0 0 0 0])
B. 然后就开始添加一些层了,这里添加了Dense全连接层,Activation激活层和Dropout层,具体参见中文文档常用层 ,模型搭建完成后,使用了summary()函数打印出模型概况 。
C. 然后使用compile()配置模型的学习过程,fit()训练模型,evaluate()评估模型的误差。参见 Sequential模型接口 。最后计算的test score是所有损失函数的平均值。
4. 补充
A. 训练过程中显示的ETA:34s
是Expected Time of Arrival的意思。
B. 尝试完mnist_mlp.py,可以再看一看其他的基于mnist数据集的例子,如mnist_cnn.py。
- keras第一个例程mnist_mlp.py解读
- Keras入门mnist_mlp.py
- 运行keras mnist_mlp.py错误解决
- Keras 例程lmdb_lstm.py理解
- QCustomPlot第一个例程详细笔记
- web.py的第一个helloworld
- python运行第一个.py程序
- web.py 进阶例程
- Web.py 入门例程
- 用 Keras 编写你的第一个人工神经网络
- keras imdb.py源码错误
- 获取本机的第一个IP(常用例程:1)
- fedora10 与 ok6410 nfs服务配置与第一个例程
- 第一个完整的神经网络样例程序
- python使用web.py建立第一个hello world程序
- 第一个tornado程序,经典的hello.py
- tutorial_cifar10_tfrecord.py解读
- generate_anchor.py运算解读
- angularjs学习笔记-处理依赖注入
- Ajax技术
- Class.isAssignableFrom(Class clz)方法 与 instanceof 关键字的区别
- hwc_layer_1
- Leetcode 217 Contains Duplicate
- keras第一个例程mnist_mlp.py解读
- UVA 10859 Placing Lampposts 树型DP -
- 自动生成代码编译完成后自动执行
- Android学习之路----自定义RatingBar(评分控件)
- ping
- 贫血,充血模型的解释以及一些经验(非常经典)
- 10月24号 到 12月24号 的安排
- Unity3d 64位编辑器中使用C/C++动态链接库的方法
- git 常用命令