【深度学习】实验06 使用TensorFlow完成线性回归

这篇具有很好参考价值的文章主要介绍了【深度学习】实验06 使用TensorFlow完成线性回归。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用TensorFlow完成线性回归

TensorFlow是由Google开发的一个开源的机器学习框架。它可以让开发者更加轻松地构建和训练深度学习模型,从而解决各种自然语言处理、计算机视觉、语音识别、推荐系统等领域的问题。

TensorFlow的主要特点是灵活性和可伸缩性。它实现了一种基于数据流图的计算模型,使得用户可以定义自己的计算图,控制模型的计算过程。同时,TensorFlow支持分布式计算,使得用户可以在多台机器上运行大规模计算任务,从而提高计算效率。

TensorFlow包含了许多高级API,例如Keras和Estimator,使得用户可以更加轻松地构建和训练深度学习模型。Keras提供了一个易于使用的高级API,使得用户可以在不需要深入了解TensorFlow的情况下,构建和训练深度学习模型。Estimator则提供了一种更加低级的API,使得用户可以更加灵活地定义模型的结构和训练过程。

TensorFlow还提供了一个交互式开发环境,称为TensorBoard,可以帮助用户可视化模型的计算图、训练过程和性能指标,从而更加直观地理解和调试深度学习模型。

由于TensorFlow的灵活性和可伸缩性,它已经被广泛应用于各个领域,包括自然语言处理、计算机视觉、语音识别、推荐系统等。例如,在自然语言处理领域,TensorFlow被用于构建和训练各种强大的模型,例如机器翻译模型、文本分类模型、语言生成模型等。

总的来说,TensorFlow是一个强大的机器学习框架,可以帮助用户更加轻松地构建和训练深度学习模型。随着深度学习技术的不断发展,TensorFlow将继续发挥重要的作用,推动各个领域的发展和创新。

1. 导入TensorFlow库

# 导入相关库
%matplotlib inline
import numpy as np
import tensorflow as tf
import matplotlib.pyplot as plt

2. 构造数据集

# 产出样本点个数
n_observations = 100
# 产出-3~3之间的样本点
xs = np.linspace(-3, 3, n_observations) 
# sin扰动
ys = np.sin(xs) + np.random.uniform(-0.5, 0.5, n_observations) 
xs
   array([-3.        , -2.93939394, -2.87878788, -2.81818182, -2.75757576,
          -2.6969697 , -2.63636364, -2.57575758, -2.51515152, -2.45454545,
          -2.39393939, -2.33333333, -2.27272727, -2.21212121, -2.15151515,
          -2.09090909, -2.03030303, -1.96969697, -1.90909091, -1.84848485,
          -1.78787879, -1.72727273, -1.66666667, -1.60606061, -1.54545455,
          -1.48484848, -1.42424242, -1.36363636, -1.3030303 , -1.24242424,
          -1.18181818, -1.12121212, -1.06060606, -1.        , -0.93939394,
          -0.87878788, -0.81818182, -0.75757576, -0.6969697 , -0.63636364,
          -0.57575758, -0.51515152, -0.45454545, -0.39393939, -0.33333333,
          -0.27272727, -0.21212121, -0.15151515, -0.09090909, -0.03030303,
           0.03030303,  0.09090909,  0.15151515,  0.21212121,  0.27272727,
           0.33333333,  0.39393939,  0.45454545,  0.51515152,  0.57575758,
           0.63636364,  0.6969697 ,  0.75757576,  0.81818182,  0.87878788,
           0.93939394,  1.        ,  1.06060606,  1.12121212,  1.18181818,
           1.24242424,  1.3030303 ,  1.36363636,  1.42424242,  1.48484848,
           1.54545455,  1.60606061,  1.66666667,  1.72727273,  1.78787879,
           1.84848485,  1.90909091,  1.96969697,  2.03030303,  2.09090909,
           2.15151515,  2.21212121,  2.27272727,  2.33333333,  2.39393939,
           2.45454545,  2.51515152,  2.57575758,  2.63636364,  2.6969697 ,
           2.75757576,  2.81818182,  2.87878788,  2.93939394,  3.        ])
ys
   array([-0.62568008,  0.01486274, -0.29232541, -0.05271084,
-0.53407957,
          -0.37199581, -0.40235236, -0.80005504, -0.2280913 , -0.96111433,
          -0.58732159, -0.71310851, -1.19817878, -0.93036437, -1.02682804,
          -1.33669261, -1.36873043, -0.44500172, -1.38769079, -0.52899793,
          -0.78090929, -1.1470421 , -0.79274726, -0.95139505, -1.3536293 ,
          -1.15097615, -1.04909201, -0.89071026, -0.81181765, -0.70292996,
          -0.49732344, -1.22800179, -1.21280414, -0.59583172, -1.05027515,
          -0.56369191, -0.68680323, -0.20454038, -0.32429566, -0.84640122,
          -0.08175012, -0.76910728, -0.59206189, -0.09984673, -0.52465978,
          -0.30498277,  0.08593627, -0.29488864,  0.24698113, -0.07324925,
           0.12773032,  0.55508531,  0.14794648,  0.40155342,  0.31717698,
           0.63213964,  0.35736413,  0.05264068,  0.39858619,  1.00710311,
           0.73844747,  1.12858026,  0.59779567,  1.22131999,  0.80849061,
           0.72796849,  1.0990044 ,  0.45447096,  1.15217952,  1.31846002,
           1.27140258,  0.65264777,  1.15205186,  0.90705463,  0.82489198,
           0.50572125,  1.47115594,  0.98209434,  0.95763951,  0.50225094,
           1.40415029,  0.74618984,  0.90620692,  0.40593222,  0.62737999,
           1.05236579,  1.20041249,  1.14784273,  0.54798933,  0.18167682,
           0.50830766,  0.92498585,  0.9778136 ,  0.42331405,  0.88163729,
           0.67235809, -0.00539421, -0.06219493,  0.26436412,  0.51978602])
# 可视化图长和宽
plt.rcParams["figure.figsize"] = (6,4)
# 绘制散点图
plt.scatter(xs, ys) 
plt.show()

【深度学习】实验06 使用TensorFlow完成线性回归,《 深度学习 》,python,深度学习,tensorflow

3. 定义基本模型

# 占位
X = tf.placeholder(tf.float32, name='X')
Y = tf.placeholder(tf.float32, name='Y')
# 随机采样出变量
W = tf.Variable(tf.random_normal([1]), name='weight') 
b = tf.Variable(tf.random_normal([1]), name='bias')
# 手写y = wx+b
Y_pred = tf.add(tf.multiply(X, W), b) 
# 定义损失函数mse
loss = tf.square(Y - Y_pred, name='loss') 
# 学习率
learning_rate = 0.01
# 优化器,就是tensorflow中梯度下降的策略
# 定义梯度下降,申明学习率和针对那个loss求最小化
optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(loss) 

4. 训练模型

# 去样本数量
n_samples = xs.shape[0]
init = tf.global_variables_initializer()
with tf.Session() as sess:
    # 记得初始化所有变量
    sess.run(init) 
    writer = tf.summary.FileWriter('../graphs/linear_reg', sess.graph)
    # 训练模型
    for i in range(50):
        #初始化损失函数
        total_loss = 0
        for x, y in zip(xs, ys):
            # 通过feed_dic把数据灌进去
            _, l = sess.run([optimizer, loss], feed_dict={X: x, Y:y}) #_是optimizer的返回,在这没有用就省略
            total_loss += l #统计每轮样本的损失
        print('Epoch {0}: {1}'.format(i, total_loss/n_samples)) #求损失平均

    # 关闭writer
    writer.close() 
    # 取出w和b的值
    W, b = sess.run([W, b]) 
Epoch 0: [0.48447946]
Epoch 1: [0.20947962]
Epoch 2: [0.19649307]
Epoch 3: [0.19527708]
Epoch 4: [0.19514856]
Epoch 5: [0.19513479]
Epoch 6: [0.19513334]
Epoch 7: [0.19513316]
Epoch 8: [0.19513315]
Epoch 9: [0.19513315]
Epoch 10: [0.19513315]
Epoch 11: [0.19513315]
Epoch 12: [0.19513315]
Epoch 13: [0.19513315]
Epoch 14: [0.19513315]
Epoch 15: [0.19513315]
Epoch 16: [0.19513315]
Epoch 17: [0.19513315]
Epoch 18: [0.19513315]
Epoch 19: [0.19513315]
Epoch 20: [0.19513315]
Epoch 21: [0.19513315]
Epoch 22: [0.19513315]
Epoch 23: [0.19513315]
Epoch 24: [0.19513315]
Epoch 25: [0.19513315]
Epoch 26: [0.19513315]
Epoch 27: [0.19513315]
Epoch 28: [0.19513315]
Epoch 29: [0.19513315]
Epoch 30: [0.19513315]
Epoch 31: [0.19513315]
Epoch 32: [0.19513315]
Epoch 33: [0.19513315]
Epoch 34: [0.19513315]
Epoch 35: [0.19513315]
Epoch 36: [0.19513315]
Epoch 37: [0.19513315]
Epoch 38: [0.19513315]
Epoch 39: [0.19513315]
Epoch 40: [0.19513315]
Epoch 41: [0.19513315]
Epoch 42: [0.19513315]
Epoch 43: [0.19513315]
Epoch 44: [0.19513315]
Epoch 45: [0.19513315]
Epoch 46: [0.19513315]
Epoch 47: [0.19513315]
Epoch 48: [0.19513315]
Epoch 49: [0.19513315]
print(W,b)
print("W:"+str(W[0]))
print("b:"+str(b[0]))
[0.23069778] [-0.12590201]
W:0.23069778
b:-0.12590201

5. 线性回归图

# 线性回归图
plt.plot(xs, ys, 'bo', label='Real data')
plt.plot(xs, xs * W + b, 'r', label='Predicted data')
plt.legend()
plt.show()

【深度学习】实验06 使用TensorFlow完成线性回归,《 深度学习 》,python,深度学习,tensorflow文章来源地址https://www.toymoban.com/news/detail-691253.html

附:系列文章

序号 文章目录 直达链接
1 波士顿房价预测 https://want595.blog.csdn.net/article/details/132181950
2 鸢尾花数据集分析 https://want595.blog.csdn.net/article/details/132182057
3 特征处理 https://want595.blog.csdn.net/article/details/132182165
4 交叉验证 https://want595.blog.csdn.net/article/details/132182238
5 构造神经网络示例 https://want595.blog.csdn.net/article/details/132182341
6 使用TensorFlow完成线性回归 https://want595.blog.csdn.net/article/details/132182417
7 使用TensorFlow完成逻辑回归 https://want595.blog.csdn.net/article/details/132182496
8 TensorBoard案例 https://want595.blog.csdn.net/article/details/132182584
9 使用Keras完成线性回归 https://want595.blog.csdn.net/article/details/132182723
10 使用Keras完成逻辑回归 https://want595.blog.csdn.net/article/details/132182795
11 使用Keras预训练模型完成猫狗识别 https://want595.blog.csdn.net/article/details/132243928
12 使用PyTorch训练模型 https://want595.blog.csdn.net/article/details/132243989
13 使用Dropout抑制过拟合 https://want595.blog.csdn.net/article/details/132244111
14 使用CNN完成MNIST手写体识别(TensorFlow) https://want595.blog.csdn.net/article/details/132244499
15 使用CNN完成MNIST手写体识别(Keras) https://want595.blog.csdn.net/article/details/132244552
16 使用CNN完成MNIST手写体识别(PyTorch) https://want595.blog.csdn.net/article/details/132244641
17 使用GAN生成手写数字样本 https://want595.blog.csdn.net/article/details/132244764
18 自然语言处理 https://want595.blog.csdn.net/article/details/132276591

到了这里,关于【深度学习】实验06 使用TensorFlow完成线性回归的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 机器学习6:使用 TensorFlow 的训练线性回归模型

    纸上得来终觉浅,绝知此事要躬行。前面 5 篇文章介绍了机器学习相关的部分基础知识,在本章,笔者将讲解基于 TensorFlow 实现一个简单的线性回归模型,以便增强读者对机器学习的体感。 目录 1.环境准备 1.1 安装 Python3 1.2 安装 PyCharm 1.3 安装 TensorFlow 1.4 安装 pandas

    2024年02月11日
    浏览(42)
  • TensorFlow 1.x学习(系列二 :4):自实现线性回归

    线性回归: w 1 ∗ x 1 + w 2 ∗ x 2 + w 3 ∗ x 3 + . . . + w n ∗ x n + b i a s w_1 * x_1 + w_2 * x_2 + w_3 * x_3 + ...+ w_n * x_n + bias w 1 ​ ∗ x 1 ​ + w 2 ​ ∗ x 2 ​ + w 3 ​ ∗ x 3 ​ + ... + w n ​ ∗ x n ​ + bia s 1:准备好1特征1目标值(都为100行1列) y = x ∗ 0.7 + 0.8 y = x * 0.7 + 0.8 y = x ∗ 0.7 + 0.8 2: 建立

    2024年02月05日
    浏览(31)
  • 【深度学习实验】线性模型(二):使用NumPy实现线性模型:梯度下降法

    目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 三、实验内容 0. 导入库 1. 初始化参数 2. 线性模型 linear_model 3. 损失函数loss_function 4. 梯度计算函数compute_gradients 5. 梯度下降函数gradient_descent 6. 调用函数               使用NumPy实现线性模型:梯度下降法

    2024年02月07日
    浏览(47)
  • 深度学习(一),线性回归与逻辑回归

            代码是自己敲得,图是自己画的,连公式都是一个一个字打的, 希望赞是你给的(≧◡≦)。         线性回归(Liner Regression),俗称lr。                                                                         一个大家熟悉得不能再熟悉的式子,便是线性回归

    2024年03月25日
    浏览(43)
  • 机器学习与深度学习——使用paddle实现随机梯度下降算法SGD对波士顿房价数据进行线性回归和预测

    随机梯度下降(SGD)也称为增量梯度下降,是一种迭代方法,用于优化可微分目标函数。该方法通过在小批量数据上计算损失函数的梯度而迭代地更新权重与偏置项。SGD在高度非凸的损失表面上远远超越了朴素梯度下降法,这种简单的爬山法技术已经主导了现代的非凸优化。

    2024年02月03日
    浏览(57)
  • 吴恩达机器学习-可选实验:使用ScikitLearn进行线性回归(Linear Regression using Scikit-Learn)

    有一个开源的、商业上可用的机器学习工具包,叫做scikit-learn。这个工具包包含了你将在本课程中使用的许多算法的实现。 在本实验中,你将:利用scikit-learn实现使用梯度下降的线性回归 您将使用scikit-learn中的函数以及matplotlib和NumPy。 np.set_printoptions(precision=2) 的作用是告诉

    2024年03月14日
    浏览(49)
  • 机器学习&&深度学习——线性回归的简洁实现

    👨‍🎓作者简介:一位即将上大四,正专攻机器学习的保研er 🌌上期文章:机器学习深度学习——线性回归的从零开始实现 📚订阅专栏:机器学习深度学习 希望文章对你们有所帮助 由于数据迭代器、损失函数、优化器以及神经网络很常用,现代深度学习库也为我们实现了

    2024年02月15日
    浏览(36)
  • 机器学习&&深度学习——线性回归的基本元素

    回归用来表示输入输出之间的关系。 用实际例子来解释一下线性回归:根据房屋的面积、房龄来估算房屋价格。为了实现这个预测放假的模型,需要收集一个真实的数据集,该数据集包括了房屋的销售价格、面积和房龄。 在机器学习中,这个数据集称为 训练集(training set)

    2024年02月15日
    浏览(51)
  • 李沐《动手学深度学习》线性神经网络 线性回归

    李沐《动手学深度学习》预备知识 张量操作及数据处理 李沐《动手学深度学习》预备知识 线性代数及微积分 教材:李沐《动手学深度学习》 线性回归基于的 假设 : 假设自变量和因变量之间的关系是线性的,这里通常允许包含观测值的一些噪声; 假设任何噪声都比较正常

    2024年01月21日
    浏览(96)
  • 深度学习与逻辑回归模型的融合--TensorFlow多元分类的高级应用

    说到数字识别问题,这是一个分类问题,也就是我们要探讨的逻辑回归问题。逻辑回归是机器学习算法中非常经典的一种算法。 线性回归和逻辑回归的关系就是: 逻辑回归是广义的线性回归 。它们就是一个东西,只是范围不同。我在文章《深度学习在单线性回归方程中的应

    2024年02月04日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包