资讯专栏INFORMATION COLUMN

TensorFlow2

XFLY / 3403人阅读

摘要:让我们观察一下这个例子中的损失函数到底长什么样子。因此,我们可以通过梯度下降的方法求解使得损失函数达到最小值的。

机器学习基础

线性回归

逻辑回归

Softmax分类

神经网络

线性回归 什么是回归?


通俗地讲:给定X1, X2, ..., Xn,通过模型或算法预测数值Y,即是回归。如上图所示。
例如,预测测试分数:

x(hours) y(score)
10 90
9 80
3 50
2 30

以下面的数据阐述什么是线性回归:

x y
1 1
2 2
3 3

1.如下图所示,我们把上述数据中的点(x, y)在坐标中描绘出来,可以发现(x,y)呈线性趋势。
2.试图用一条直线H(x)=wx+b去拟合坐标中的观察值,例如图中的3条直线。

那么,图中的3条直线哪个能更好地拟合观察值(x,y)呢?如下图所示:我们可以用观察值到直线的竖直距离的平方(H(x)-y)^2来衡量模型的拟合效果,如图中的损失函数:cost。

让我们观察一下这个例子中的损失函数到底长什么样子。如下图所示:cost(W)为平滑可导的凸函数,在w=1处取得最小值。因此,我们可以通过梯度下降的方法求解使得损失函数达到最小值的W。

TensorFlow实现线性回归

1.添加线性节点H(x) = Wx + b

# 训练数据集x,y
x_train = [1, 2, 3]
y_train = [1, 2, 3]

W = tf.Variable(tf.random_normal([1]), name="weight")
b = tf.Variable(tf.random_normal([1]), name="bias")
# 线性假设 XW + b
hypothesis = x_train * W + b

2.计算损失函数

cost = tf.reduce_mean(tf.square(hypothesis - y_train))

3.梯度下降

optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.01)
train = optimizer.minimize(cost)

4.更新图并获取结果

# 开启session会话
less = tf.Session()
# 初始化全局变量
sess.run(tf.global_variables_initializer())

# 拟合直线
for step in range(2001):
    sess.run(train)
    if step % 20 == 0:
        print(step, sets.run(cost), sess.run(W), sets.run(b))

完整代码:

import tensorflow as tf
# 训练数据集x,y
x_train = [1, 2, 3]
y_train = [1, 2, 3]

W = tf.Variable(tf.random_normal([1]), name="weight")
b = tf.Variable(tf.random_normal([1]), name="bias")
# 线性假设 XW + b
hypothesis = x_train * W + b
# 损失函数
cost = tf.reduce_mean(tf.square(hypothesis - y_train))

# 梯度下降
optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.01)
train = optimizer.minimize(cost)

# 开启session会话
sess = tf.Session()
# 初始化全局变量
sess.run(tf.global_variables_initializer())

# 拟合直线
for step in range(2001):
    sess.run(train)
    if step % 20 == 0:
        print(step, sess.run(cost), sess.run(W), sess.run(b))

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/40968.html

相关文章

  • Anaconda+CUDA+cuDNN+Tensorflow2.0环境搭建

    摘要:图和之间的关系图例与各版本之间的环境依赖关系的原装驱动并不支持,因此需要禁用掉并且重装卡官方驱动。会有很多同学在不知道的情况下安装了,最后导致和无法使用或者无法安装等问题。 ...

    biaoxiaoduan 评论0 收藏0
  • tensorflow1转tensorflow2

    当谈到机器学习模型训练和部署时,TensorFlow是最流行的框架之一。TensorFlow 2.0是TensorFlow的最新版本,它提供了许多新的功能和改进,使得模型训练和部署更加容易和高效。在这篇文章中,我们将讨论如何将TensorFlow 1.x代码迁移到TensorFlow 2.0。 1. 张量(Tensors)和变量(Variables)的改变 在TensorFlow 1.x中,我...

    mzlogin 评论0 收藏420
  • Tensorflow Lite介绍

    摘要:简介是针对移动设备和嵌入式设备的轻量化解决方案,占用空间小,低延迟。支持浮点运算和量化模型,并已针对移动平台进行优化,可以用来创建和运行自定义模型。此外,转换的方式有两种,的方式和命令行方式。生成为了将模型转为,模型需要导出。 简介 Tensorflow Lite是针对移动设备和嵌入式设备的轻量化解决方案,占用空间小,低延迟。Tensorflow Lite在android8.1以上的设...

    jhhfft 评论0 收藏0

发表评论

0条评论

XFLY

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<