TensorFlow 2.0 Tutorial: 1. 先搭建一个最简单的模型

3 月 6-7 日,在 TensorFlow 的 2019 峰会上正式推出了 2.0 Alpha 版本。
新的 TensorFlow,代码很简洁,搭建模型更容易,下面通过一个最简单的模型,来看用 2.0 搭建神经网络模型的一般流程:

1. 建立一个最简单的神经网络

首先用一个很简单的网络来了解一下 TensorFlow 2.0 的工作流程。

例如,我们有一组训练集,x 和 y 之间满足这个关系:
y = (2 * x) - 1

接下来要建立一个最简单的神经网络,让它来学习出这种关系,输入新的 x ,可以输出相应的 y。

import tensorflow as tf
import numpy as np
from tensorflow import keras

这个模型超简单,只有一层,这层只有一个神经元,input shape 只是 1.

model = tf.keras.Sequential(
            [keras.layers.Dense(units=1, input_shape=[1])]
            )

然后编译模型,这里指定两个函数 loss 和 optimizer。
神经网络在学习这个关系时,它先是猜一个系数,比如 y=10x+10,
这样模型的输出和实际的结果就会有一个差距,loss 就是来表示这个差距。
然后神经网络就用 optimizer 来根据这个 loss 进行下一步的猜测,它的目标就是让 loss 越来越小,比如这时变成了 y=5x+5。
就这样一点点让 loss 变小,来得到不错的模型。

model.compile(optimizer='sgd', 
            loss='mean_squared_error')

接下来是数据,我们用一个很小的例子,x 和 y 之间符合 y = (2 * x) - 1 关系。

xs = np.array([-1.0,  0.0, 1.0, 2.0, 3.0, 4.0], dtype=float)
ys = np.array([-3.0, -1.0, 1.0, 3.0, 5.0, 7.0], dtype=float)

训练模型,
这里最简单的方式是用 model.fit,在这一步中模型会用上面提到的过程,开始学习 x 和 y 之间的关系。
先猜测一组系数,
衡量一下模型的表现,
用 optimizer 进行下一组猜测,
执行指定的 epoch 次后,得到最后的模型。

model.fit(xs, ys, epochs=500)

模型训练好后,可以用 model.predict 来预测新的数据。

print(model.predict([10.0]))

学习资料:
Introduction to TensorFlow for Artificial Intelligence, Machine Learning, and Deep Learning
https://www.coursera.org/learn/introduction-tensorflow/home/welcome


大家好!
我是 不会停的蜗牛 Alice,
喜欢人工智能,没事儿写写机器学习干货,
欢迎关注我!

你可能感兴趣的:(TensorFlow 2.0 Tutorial: 1. 先搭建一个最简单的模型)