训练和评估
本节主要从两方面学习模型的训练和评估:使用内建的API进行训练和评估或者是自定义函数实现训练和评估。不管使用哪种方法,不同方式构建的模型的训练和评估方式是一样的。
使用内建API 当我们使用内建的API来进行训练和评估时,我们传入的数据必须是Numpy arrays或者是tf.data.Dataset对象,在接下来的几个小节里,我们将会使用MNIST数据集作为示例。
内建API总览首先创建一个模型,如下:
123456789from tensorflow import kerasfrom tensorflow.keras import layersinputs = keras.Input(shape=(784,), name='digits')x = layers.Dense(64, activation='relu', name='dense_1')(inputs)x = layers.Dense(64, activation='relu', name='dense_2')(x)o ...
Keras函数式API
本章了解Keras的函数式API以及灵活使用它们的方法。
简介我们已经熟悉了如何使用keras.Sequential函数来创建我们的层叠模型,而函数式API是比它更加灵活的创建模型的方法:它可以允许我们创建非线性的模型,共用层的模型以及多个输入输出的模型。函数式API的基本思路是深度学习网络是一种有向无环图(DAG),我们可以使用函数式API来创建这些层。
如下一个包含了3个层的模型:
123456789(input: 784-dimensional vectors) ↧[Dense (64 units, relu activation)] ↧[Dense (64 units, relu activation)] ↧[Dense (10 units, softmax activation)] ↧(output: logits of a probability distribution over 10 classes)
为了使用函数式API来创建相同的模型,我们首先创建输入节点:
123from tensorflow import k ...
Keras概览
本节介绍Keras及其相关模块,以帮助我们快速构建人工神经网络。
构建一个简单模型层叠式模型在Keras中,我们使用层(layers)来构建我们的模型,模型通常是一个由多个层构成的流程图,最简单模型类型是层叠式(Sequential)类型。为了构建一个简单全连接的MLP,我们用如下代码:
1234567891011import tensorflow as tffrom tensorflow import kerasfrom tensorflow.keras import layersmodel = tf.keras.Sequential()# Adds a densely-connected layer with 64 units to the model:model.add(layers.Dense(64, activation='relu'))# Add another:model.add(layers.Dense(64, activation='relu'))# Add an output layer with 10 output un ...
TF2初始教程
本节我们学习一些TensorFlow的基本使用方法,包括使用TensorFlow构建神经网络来对MNIST数据集进行划分以及学习一下数据的加载方法。
使用TensorFlow对MNIST数据集进行划分首先,我们加载MNIST数据集,同时将数据映射到$ [0, 1] $上:
12345import tensorflow as tfmnist = 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
接下来将各层堆叠起来,来搭建tf.keras.Sequential模型:
123456model = tf.keras.models.Sequential([ tf.keras.layers.Flatten(input_shape=(28, 28)), tf.keras.layers.Dense(128, activation='relu'), tf ...