TensorFlow入门教程

TensorFlow入门教程

About Machine Learning
TensorFlow入门教程_第1张图片
Demo Code

import tensorflow as tf

# 获取 mnist数据集
mnist = tf.keras.datasets.mnist

# 从 mnist中获取用于训练的数据集(x_trian, y_train),以及用于测试的数据集(x_test, y_test)
# x_trian 形状为(6000, 28, 28),表示 6000 张 28*28 的图片
# y_trian 形状为(6000, ),表示 x_train 对应的数字答案
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0

model = tf.keras.models.Sequential([
    # 把 28*28 的图片展开成一个包含 784 个神经元一维数组
    tf.keras.layers.Flatten(input_shape=(28, 28)),
    
    # 传入参数 activation='relu',用 relu 作为激活函数,激活函数帮助网络使用重要的信息,抑制不相关的数据点。
    # relu 是一种激活函数,用于神经元的激活,根据上一个 Layer 给予的刺激算出神经元最后输出(显示)的那个数字。
    # Layer2 层有 128个神经元,这128个神经元会和 Layer1 中 728 个神经元相互连接,共将产生 728 * 128 =93184 权重(weights)各自不同的连接 。
    # Layer1 中神经元的输出将与连接到 layer2 的权重值进行加权求和,得到的结果会被带入 relu 函数,最终输出一个新的值作为 Layer2 中神经元的输出。
    tf.keras.layers.Dense(128, activation='relu'),
    
    # Dropout layer 主要作用是防止过度拟合。过渡拟合现象主要表现是:最终模型在训练集上效果好,但在测试集上效果差,模型泛化能力弱。
    # Dropout 解决过度拟合的办法之一,就是随机丢弃一部神经元。Demo 当中使用 Dropout 随机丢弃 20% 神经元。
    tf.keras.layers.Dropout(0.2),
    
    # Layer4 上有 10 个神经元,并使用 softmax 作为激活函数,这 10 个神经元的输出就是最终结果。
    tf.keras.layers.Dense(10, activation='softmax')
])

# 损失函数( Loss Function )、优化算法( Optimization Algorithms )、评价指标( Evaluation Metrics )
# Demo 中的 Loss Function 是稀疏类别交叉熵(sparse_categorical_crossentropy),这个算法擅长分类。
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

# 在神经网络领域,一个 epoch 是指整个训练数据集的训练一个周期。
# 1 epoch = 1正向传播( forward pass )+ 1 反向传播( backward pass )
# 正向传播是为了获得预测结果,反向传播是调整到最优的权重(weights)来让 Loss 最小化。
model.fit(x_train, y_train, epochs=10)
model.evaluate(x_test, y_test)

输出结果:
TensorFlow入门教程_第2张图片

在机器学习中,模型( Model )是一个具有可学习参数的函数,它将输入映射到输出。最优参数是通过在数据上训练模型获得的。一个训练有素的模型将提供从输入到所需输出的精确映射。

模型是个函数,内置了很多参数,这些参数的值会直接影响模型的输出结果;这些参数都是可学习的,它们可以根据训练数据来进行调整,以获得一组最优值,使得模型的输出效果最理想。

Demo 要训练一个可以识别手写数字的模型(Model), 要识别的手写数字如图:
TensorFlow入门教程_第3张图片

Demo中的数据集MNIST(Mixed National Institute of Standards and Technology database)是美国国家标准与技术研究院收集整理的大型手写数字数据库,包含 60000 个示例的训练集以及 10000 个示例的测试集,里面的图片如图所示:
TensorFlow入门教程_第4张图片

图片是通过空间的矩阵的方式存储的
TensorFlow入门教程_第5张图片

参考文章:
读懂一个 Demo,入门机器学习
【社区分享】TensorFlow Demo分析,带你快速入门深度学习

你可能感兴趣的:(人工智能,tensorflow,深度学习,python)