TensorFlow 2中创建线性回归模型

  |   0 评论   |   0 浏览   |   给我丶鼓励

TensorFlow 2(TF 2)简介

TensorFlow 指南中,TF 2 有重大变化:

  • API 清理:删除多余的 API,例如 tf.apptf.flagstf.logging
  • Eager Execution:执行像 Python
  • 不再有全局变量:跟踪变量
  • 功能,而不是会话:可以装饰 Python 函数 tf.function() 以将其标记为 JIT 编译,以便 TensorFlow 将其作为单个图形运行。

在 TF 2 中建立线性回归

在本文中,我将使用 TensorFlow 2.x 重建该模型,如下所示:

import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt

learning_rate = 0.01
training_epochs = 100
x_train = np.linspace(0, 10, 100)
y_train = x_train + np.random.normal(0,1,100)
w0 = tf.Variable(0.)
w1 = tf.Variable(0.)


def h(x):
   y = w1*x + w0
   return y

def squared_error(y_pred, y_true):
   return tf.reduce_mean(tf.square(y_pred - y_true))


for epoch in range(training_epochs):
    with tf.GradientTape() as tape:
        y_predicted = h(x_train)
        costF = squared_error(y_predicted, y_train)
    gradients = tape.gradient(costF, [w1,w0])
    w1.assign_sub(gradients[0]*learning_rate)
    w0.assign_sub(gradients[1]*learning_rate)

plt.scatter(x_train, y_train)
plt.plot(x_train, h(x_train), 'r')
plt.show()

结果将如下所示:

我们注意到一些变化:

  • 声明变量(tf.Variable )但不需要使用 tf.global_variables_initializer ,这意味着 TensorFlow 2.0 不必强制初始化变量。
  • 使用 t 训练我们的模型 f.GradientTape ,我们将使用 assign_sub 权重变量。
  • 不需要会话执行。

结论

TensorFlow 是深度学习和机器学习的绝佳平台,而 TF 2.0 则注重简单性和易用性。在本文中,我通过从头开始构建简单的线性回归模型(不使用 Keras 等 API)介绍了 TF 2.0 的一些新变化,希望您对此感到兴奋。


标题:TensorFlow 2中创建线性回归模型
作者:给我丶鼓励
地址:https://blog.doiduoyi.com/articles/1592319545700.html

评论

发表评论