tensorflow2.0入门系列(一)

tensorflow2入门教程(-)

导入TensorFlow2.0

1
import tensorflow as tf

MNIST数据集是一个手写数据集,其中有60,000张训练图片, 和10,000张训练图片,是深度学习常被用来入门的数据集

1
2
3
4
5
6
#加载mnist数据
mnist = tf.keras.datasets.mnist

#读取训练数据和测试数据,将样本从整数转换为浮点数
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0

构建深度学习模型

首先,我们来看一下ReLU激活函数的形式,如下图:
ReLU函数图像
relu,即Rectified Linear Unit,整流线性单元,激活部分神经元,增加稀疏性,当x小于0时,输出值为0,当x大于0时,输出值为x.

softmax用于多分类过程中,它将多个神经元的输出,映射到(0,1)区间内,可以看成概率来理解,从而来进行多分类!

1
2
3
4
5
6
7
8
9
10
11
#tf.keras.models.Sequential为Keras提供的层叠模型
model = tf.keras.models.Sequential([
#输入层,输入的shape是28X28(图片大小是28X28) ,tf.keras.layers.Flatten()将输入展平,将多维数据展层一维,降维打击
tf.keras.layers.Flatten(input_shape=(28, 28)),
#隐藏层一,输出shape是128,激励函数是relu,tf.keras.layers.Dense()全连接层
tf.keras.layers.Dense(128, activation='relu'),
#Dropout一些神经元,能够有效地处理在训练过程中产生的过拟合问题
tf.keras.layers.Dropout(0.2),
#输出层,shape为10分别对应着0-9这几个手写数字,激励函数为softmax,将特征值转换为在各个分类上的概率,,tf.keras.layers.Dense()全连接层
tf.keras.layers.Dense(10, activation='softmax')
])

构建好模型后,通过调用 compile 方法配置该模型的学习流程

1
2
3
4
#采用adam优化器,损失函数为sparse_categorical_crossentropy,评价函数
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])

训练并验证模型

1
2
3
4
#输入数据x_train,y_train;训练次数5次
model.fit(x_train, y_train, epochs=5)
#测试模型
model.evaluate(x_test, y_test)