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,
喜欢人工智能,没事儿写写机器学习干货,
欢迎关注我!