整个过程可分为五步:
1建立Sequential模型,2添加所须要的神经层,3使用.compile方法肯定模型训练结构,4使用.fit方法网络
使模型与训练数据“拟合”,5.predict方法进行预测。函数
导入tensorflow模块,使用keras中的Sequential模型学习
import tensorflow as tf model = tf.keras.Sequential()
keras.Senquential()模型是一个顺序堆叠模型,能够在模型中依次添加所须要的神经层测试
使用model.add()方法能够向创建好的模型中添加须要的神经层优化
首先是输入层lua
1 model.add(tf.keras.layers.Flatten(input_shape = (28, 28)))#输入的数据为 28*28的二维数据
Flatten是经常使用的输入层,能够把输入的多维数据展开成一维,便于输入到神经网络中。spa
input_shape参数是以元组的形式输入数据的维度。code
而后是添加中间层,这里只介绍简单的几种中间层。对象
Dense:全链接神经网络层。blog
Dropout:对于神经网络单元,按照必定的几率将其暂时从网络中丢弃。
1 model.add(tf.keras.layers.Dense(128, activation = "relu")) 2 model.add(tf.keras.layers.Dropout(0.5))
Dense中的第一个参数是只隐藏单元的数量,隐藏单元越多,神经网络就越复杂,activation参数是Dense层的激活函数。
Dropout是按照必定几率随机丢弃一些隐藏单元,避免隐藏单元之间出现过强的依赖性形成过拟合,Dropout层能够有效抑制过拟合,参数是随机丢弃隐藏单元的几率。
最后是添加分类器。
分类器也是一个中间层,激活函数选用某些用于分类的函数。
softmax就是一个经常使用的分类器。
1 model.add(keras.layers.Dense(10, activation='softmax'))
这里添加了一个softmax分类器,第一个参数是分类的类别,这是一个10分类的分类器。
1 model.compile(optimizer = 'adam', #梯度降低 2 loss = 'sparse_categorical_crossentropy', #损失函数 3 metrics = ['acc'] #正确率 4 )
optimizer参数是选择模型梯度降低的传递优化器实例,也能够经过下面这种方式自定义优化器中的学习率。
1 optimizer = tf.keras.optimizers.Adam(learning_rate = 0.001)
loss参数是选择计算模型偏差的损失函数,常见的有均方差‘mse’和'sparse_categorical_crossentropy'等。
metrics用于监视训练,它们是 tf.keras.metrics模块中的字符串名称或可调用对象。
model.fit(train_image, train_label, epochs = 10,batch_size = 32, validation_data = (test_image, test_label) #显示测试集在训练中的测试状况 )
最开始的两个参数是训练数据和数据的标签。
epochs是迭代次数,也就是 对这些数据反复训练的次数。
batch_size每次迭代输入的数据数量。
validation_data监视迭代过程当中在验证集上达到的效果。
1 model.evaluate(test_image, test_label)
使用.evaluate()方法对测试集进行评估。
1 model.predict(test_image[0])
使用.predict()方法对数据进行预测,返回一个预测的结果。