Tensorflow学习笔记No.1

使用tf.keras.Sequential()创建网络模型

整个过程可分为五步:
1建立Sequential模型,2添加所须要的神经层,3使用.compile方法肯定模型训练结构,4使用.fit方法网络

使模型与训练数据“拟合”,5.predict方法进行预测。函数

1.创建Sequential模型

导入tensorflow模块,使用keras中的Sequential模型学习

import tensorflow as tf
model = tf.keras.Sequential()

keras.Senquential()模型是一个顺序堆叠模型,能够在模型中依次添加所须要的神经层测试

2.添加神经层

使用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分类的分类器。

 

3.使用.compile()方法肯定模型训练流程

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模块中的字符串名称或可调用对象。

 

4.使用.fit()方法训练模型

model.fit(train_image, train_label, epochs = 10,batch_size = 32,
          validation_data = (test_image, test_label) 
          #显示测试集在训练中的测试状况
          )

最开始的两个参数是训练数据和数据的标签。

epochs是迭代次数,也就是 对这些数据反复训练的次数。

batch_size每次迭代输入的数据数量。

validation_data监视迭代过程当中在验证集上达到的效果。

5.评估和预测

1 model.evaluate(test_image, test_label)

使用.evaluate()方法对测试集进行评估。

1 model.predict(test_image[0])

使用.predict()方法对数据进行预测,返回一个预测的结果。

相关文章
相关标签/搜索