1-前期准备
1,首先需要了解神经网络结构的知识,参考链接: 吃瓜教程学习笔记-CH5神经网络.
2,需要下载keras框架和tensorflow框架,参考链接:Keras环境的安装
基于以上环境和知识的储备,才能更好的理解项目流程。
2-项目流程
一般的深度学习项目的流程分为以下固定步骤:
- 数据集的划分
- 图片的预处理
- 构建网络模型
- 模型的编译
- 模型的训练
- 模型的验证
- 模型的优化
模型的优化,减缓过拟合,模型的优化下节进行叙述,本节主要讲述前6个步骤。
3-代码实践
1-数据集的划分
在机器学习中,通常将原始数据集划分成三个部分:
- 训练集 training set:用于模型训练
- 验证集validation set:用于每次模型训练结束后衡量模型的预测准确度,判断是否过拟合。
- 测试集testing set:评估模型
通常情况下,会将数据集分为6:2:2比例。
keras框架中有自动划分训练集和验证集的方式。
model.fit(x_train,y_train,validation_split=0.2)
2-图片预处理
在全连接神经网络中,需要对图片进行扁平化处理,再送到构建好的模型中去训练。keras中提供了扁平化操作的层,可以作为全连接神经网络的第一层。
因为MNIST数据集中每一张图片为28*28,扁平化第一层的input_shape=(28,28).
代码如下:
#构建模型
from keras.models import Sequential
from keras.layers import Dense, Flatten
from keras.optimizers import RMSprop
model = Sequential()
model.add(Flatten(input_shape=(28, 28)))
3-网络构建
3个隐藏层,第一个单元数64,其余32,所有的单元使用函数ReLU函数作为激活函数,最后加上输出层。输出层使用softmax函数。
model.add(Dense

本文介绍使用全连接神经网络进行MNIST手写数字识别的方法。包括数据集划分、图片预处理、网络构建等步骤,并给出完整的代码实现。
最低0.47元/天 解锁文章
6565

被折叠的 条评论
为什么被折叠?



