Tensorflow 2.0 初学者的自学笔记(1)
简介
其实之前我学习过tf1.1的一些知识,当时被tf.session和tf.graph搞得死去活来,各种看不懂,但是前段时间被教授强迫再次捡起自己垃圾的tensorflow的时候, 决定好好升级一下自己的大脑,顺便写下来方便自己复习
本文学习子tensorflow2.0的官方中文文档。主要作用是方便我复习。
原文地址
基本的设计逻辑
我们在设计一个深度学习模型的时候,通常分为以下几步。
- 们会对我们的数据进行预处理,但是因为不同的任务预处理的方法存在差别,因此就不在这里详细展开来说这个事情。
- 设计一个类,用来表示我们设计好的模型
- 在类的外面,定义我们的损失函数(loss function)和选择优化器(optimizer).其中损失函数就是我们用来梯度下降的原函数,而选择优化器则是我们选择的在梯度曲面上的更新参数的方法。
- 选择衡量指标来度量模型的损失值(loss)和准确率(accuracy)。这些指标在 epoch 上累积值,然后打印出整体结果。
- 使用修饰器@tf.function 和tf.GradientTape 来设计训练模型的函数。在python当中,修饰器的主要作用是在我们想给一个函数扩展功能但是又不想破坏其本身的时候,调用一个可以将函数作为对象传入的函数,将其作为修饰器,从而实现上述功能的。在这里修饰器的作用是取代原来的回话所存在的。参考内容地址
- 训练并测试我们的模型。
示例代码详解
- 将 Tensorflow 导入您的程序:
from __future__ import absolute_import, division, print_function, unicode_literals
import tensorflow as tf
from tensorflow.keras.layers import Dense, Flatten, Conv2D
from tensorflow.keras import Model
- 加载并准备 MNIST 数据集,并使用 tf.data 来将数据集切分为 batch 以及混淆数据集
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
# Add a channels dimension
x_train = x_train[.<