TensorFlow入门教程

TensorFlow入门教程

About Machine Learning
在这里插入图片描述
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)

输出结果:
在这里插入图片描述

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

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

Demo 要训练一个可以识别手写数字的模型(Model), 要识别的手写数字如图:
在这里插入图片描述

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

图片是通过空间的矩阵的方式存储的
在这里插入图片描述

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

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值