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()方法可以向建立好的模型中添加需要的神经层

 

首先是输入层

1 model.add(tf.keras.layers.Flatten(input_shape = (28, 28)))#输入的数据为 28*28的二维数据

Flatten是常用的输入层,可以把输入的多维数据展开成一维,便于输入到神经网络中

input_shape参数是以元组的形式输入数据的维度

 

然后是添加中间层,这里只介绍简单的几种中间层

Dense:全连接神经网络层

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()方法对数据进行预测,返回一个预测的结果。

 

posted @ 2020-10-05 16:54  VioletOrz  阅读(324)  评论(0编辑  收藏  举报