前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TensorFlow 2.0 Tutorial: 1. 先搭建一个最简单的模型

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

作者头像
杨熹
发布2019-04-09 15:42:00
1.3K0
发布2019-04-09 15:42:00
举报
文章被收录于专栏:杨熹的专栏杨熹的专栏

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

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

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

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

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

代码语言:javascript
复制
import tensorflow as tf
import numpy as np
from tensorflow import keras

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

代码语言:javascript
复制
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 变小,来得到不错的模型。

代码语言:javascript
复制
model.compile(optimizer='sgd', 
            loss='mean_squared_error')

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

代码语言:javascript
复制
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 次后,得到最后的模型。

代码语言:javascript
复制
model.fit(xs, ys, epochs=500)

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

代码语言:javascript
复制
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


本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.03.26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档