当前位置: 首页 > news >正文

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

文章目录

  • 使用TensorFlow完成线性回归
    • 1. 导入TensorFlow库
    • 2. 构造数据集
    • 3. 定义基本模型
    • 4. 训练模型
    • 5. 线性回归图
  • 附:系列文章

使用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()

1

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 = 0for 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)) #求损失平均# 关闭writerwriter.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()

2

附:系列文章

序号文章目录直达链接
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
8TensorBoard案例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完成线性回归

文章目录 使用TensorFlow完成线性回归1. 导入TensorFlow库2. 构造数据集3. 定义基本模型4. 训练模型5. 线性回归图 附:系列文章 使用TensorFlow完成线性回归 TensorFlow是由Google开发的一个开源的机器学习框架。它可以让开发者更加轻松地构建和训练深度学习模型&a…...

2023国赛 C题论文 蔬菜类商品自动定价与补货策略

因为一些不可抗力,下面仅展示小部分论文,其余看文末 一、问题重述 在生鲜超市管理领域,涉及一系列复杂问题,包括供应链管理、定价策略以及市场需求分析等方面。以蔬菜类商品为案例,这些商品在生鲜商超中具有较短的保…...

使用 【jacoco】对基于 SpringBoot 和 Dubbo RPC 的项目生成测试覆盖率报告:实践+原理

基于 Dubbo RPC 的项目中有一个提供者项目backend、一个消费者项目gateway、以及注册中心nacos。本篇文章记录在windows本地对该框架的测试过程,以及介绍jacoco的基本原理 测试过程 官网下载安装包解压到本地,https://www.jacoco.org/jacoco/ 只需要用…...

Mac OS合集

MacOS 10.15os 提取码:u12a 如不能点击跳转请复制此链接到浏览器:https://pan.baidu.com/s/1UgPNYprBgJrc25v5ushWxQ?pwdu12a MacOS 11.0 提取码:y77y 如不能点击跳转请复制此链接到浏览器打开:https://pan.baidu.com/s/1srmibmCi2T7UVGvHkCzGKA?pwdy7…...

算法之位运算

前言 位运算在我们的学习中占有很重要的地位,从二进制中数的存储等都需要我们进行位运算 一、位运算复习 1.位运算复习 按位与(&):如果两个相应的二进制位都为1,则该位的结果值才为1,否则为0 按位或( | ):如果…...

flask使用Flask-Mail实现邮件发送

Flask-Mail可以实现邮件的发送,并且可以和 Flask 集成,让我们更方便地实现此功能。 1、安装 使用pip安装: $ pip install Flask-Mail或下载源码安装: $ git clone https://github.com/mattupstate/flask-mail.git $ cd flask-…...

React refers to UMD global, but the current file is a module vite初始化react项目

vite搭建react项目 初始化项目 npm create vite 在执行完上面的命令后,npm 首先会自动下载create-vite这个第三方包,然后执行这个包中的项目初始化逻辑。输入项目名称之后按下回车,此时需要选择构建的前端框架: ✔ Project na…...

vscode 调试 ROS2

1、在下列目录同层级找到.vscode文件夹 . ├── build ├── install ├── log └── src 2、 安装ros插件 3、创建tasks.json文件,添加下列内容 //代替命令行进行编译 {"version": "2.0.0","tasks": [{"label": &…...

TuyaOS开发学习笔记(2)——NB-IoT开发SDK架构、运行流程

一、SDK架构 1.1 架构框图 基于 TuyaOS 系统,可以裁剪得到的适用于 NB-IoT 协议产品接入的 SDK。SDK 将设备配网、上下行数据通信、产测授权、固件 OTA 升级等接口进行封装,并提供相关函数。 1.2 目录结构 1.2.1 TuyaOS目录说明 adapter:T…...

Qt应用开发(基础篇)——普通按钮类 QPushButton QCommandLinkButton

一、前言 QPushButton类继承于QAbstractButton,是一个命令按钮的小部件。 按钮基类 QAbstractButton 按钮或者命令按钮是所有图形界面框架最常见的部件,当按下按钮的时候触发命令、执行某些操作或者回答一个问题,典型的按钮有OK,A…...

Data Structures Fan(cf)

考察异或运算以及前缀和 题意大概:给你一个长度为n的a数组,一个长度为n的01字符串,会询问q次 当x的值为1 给出 l r 将 l r 区间中的0 改变为1,1改变为0 。当x的值为2是 若随后的数为0 则输出当前字符串中 是0 的a数组中的数异或 …...

BIOS < UEFI

Basic Input Output System (BIOS) Unified Extensible Firmware Interface (UEFI)...

微信最新更新隐私策略(2023-08-15)

1、manifest.json 配置修改 在mp-weixin: 参数修改&#xff08;没有就添加&#xff09; "__usePrivacyCheck__": true, ***2、注意 微信开发者工具调整 不然一直报错 找不到 getPrivacySetting 废话不多说 上代码 3、 编辑首页 或者用户授权界面 <uni-popup…...

Java中xml转javaBean

Java中xml转javaBean maven坐标 <dependency><groupId>com.fasterxml.jackson.dataformat</groupId><artifactId>jackson-dataformat-xml</artifactId><version>2.13.4</version></dependency>代码测试 import cn.hutool.js…...

Spring Boot集成JPA和ClickHouse数据库

简介 Spring Boot是一个用于创建独立的、基于Spring的应用程序的框架。它具有快速开发特性&#xff0c;可以大大减少开发人员的工作量。JPA&#xff08;Java Persistence API&#xff09;是Java中处理关系型数据库持久化的标准规范&#xff0c;而ClickHouse是一个高性能、分布…...

Hadoop生态圈中的Hive数据仓库技术

Hadoop生态圈中的Hive数据仓库技术 一、Hive数据仓库的基本概念二、Hive的架构组成三、Hive和数据库的区别四、Hive的安装部署五、Hive的基本使用六、Hive的元数据库的配置问题七、Hive的相关配置项八、Hive的基本使用方式1、Hive的命令行客户端的使用2、使用hiveserver2方法操…...

idea配置gitLab

前言&#xff1a;网上有很多类似的文章&#xff0c;但描述不够详细 步骤1&#xff1a;安装git 如果安装成功再次点击TEST按钮展示如下&#xff1a;git版本 步骤2&#xff1a;idea配置gitlab 查看当前项目管理的 远程仓库再git的地址&#xff0c;该地址可是gitLab的&#xff0…...

工程可以编译通过,但是Vscode依然有波浪线提示

前言 &#xff08;1&#xff09;我们在使用Vscode进行开发的时候&#xff0c;命名文件成功编译通过了&#xff0c;但是Vscode还是有波浪线的提示。 &#xff08;2&#xff09;其实成功编译通过就行&#xff0c;但是肯定还会存在一些强迫症患者&#xff0c;硬要消除这个报错。接…...

黑马JVM总结(二)

&#xff08;1&#xff09;栈 栈帧对应一次方法的调用&#xff0c;线程是要执行代码的&#xff0c;这些代码都是由一个个方法组成&#xff0c;线程运行的时候每个方法需要的内存叫做一个栈帧 &#xff08;2&#xff09;栈的演示 Frames&#xff1a;相当有栈 方法相当于栈帧…...

《Effective C++中文版,第三版》读书笔记7

条款41&#xff1a; 了解隐式接口和编译期多态 隐式接口&#xff1a; ​ 仅仅由一组有效表达式构成&#xff0c;表达式自身可能看起来很复杂&#xff0c;但它们要求的约束条件一般而言相当直接而明确。 显式接口&#xff1a; ​ 通常由函数的签名式&#xff08;也就是函数名…...

脚本:python实现动态爱心

文章目录 效果代码Reference python实现dynamic heart 效果 代码 import turtle as tu import random as ratu.setup(0.5, 0.5) # 设置画板大小&#xff08;小数表示比例&#xff0c;整数表示大小&#xff09; tu.screensize(1.0, 1.0) # 设置屏幕大小 tu.bgcolor(black) #…...

【李宏毅】深度学习6:机器学习任务攻略

如果在测试集上的效果不佳&#xff0c;应该要做什么&#xff1f;Optimization 如何选择&#xff1f;解决 overfitting 的方法&#xff1f; 测试集上的效果不佳 看训练数据的loss&#xff0c;是不是模型本身就没训练好&#xff1f; 问题&#xff1a;model 太简单了&#xff0c…...

如何使用SQL SERVER的OpenQuery

如何使用SQL SERVER的OpenQuery 一、OpenQuery使用说明二、 OpenQuery语法2.1 参数说明2.2注解 三、示例3.1 执行 SELECT 传递查询3.2 执行 UPDATE 传递查询3.3 执行 INSERT传递查询3.4 执行 DELETE 传递查询 一、OpenQuery使用说明 在指定的链接服务器上执行指定的传递查询。 …...

element-tree树结构-默认选中第一个节点高亮-根据id选中节点高亮

前言 tree树结构是在开发中经常使用的组件&#xff0c;比如区域树&#xff0c;楼层树&#xff0c;组织架构树&#xff0c;等等包含节点关系 实际开发可能需要我们一进到页面选中树形结构第一个节点&#xff0c;并且调用数据&#xff0c;来达到用户体验 在用户选择之后&#x…...

Python实操 PDF自动识别并提取Excel文件

最近几天&#xff0c;paddleOCR开发了新的功能&#xff0c;通过将图片中的表格提取出来&#xff0c;效果还不错&#xff0c;今天&#xff0c;作者按照步骤测试了一波。 首先&#xff0c;讲下这个工具是干什么用的&#xff1a;它的功能主要是针对一张完整的PDF图片&#xff0c;可…...

JVM监控和调优常用命令jps|jstat|jinfo|jmap|jhat|jstack实战

1.JVM监控和调优的主要目的 性能优化:通过JVM调优,可以提高Java应用程序的性能,减少响应时间,提高吞吐量,以更好地满足用户需求。性能优化可以加快应用程序的执行速度,减少延迟,提高用户体验。 内存管理:JVM负责管理Java应用程序的内存。正确的内存管理可以避免内存泄漏…...

chatglm2-6b在P40上做LORA微调 | 京东云技术团队

背景&#xff1a; 目前&#xff0c;大模型的技术应用已经遍地开花。最快的应用方式无非是利用自有垂直领域的数据进行模型微调。chatglm2-6b在国内开源的大模型上&#xff0c;效果比较突出。本文章分享的内容是用chatglm2-6b模型在集团EA的P40机器上进行垂直领域的LORA微调。 …...

WebGL 同时使用多幅纹理

目录 前言 ​编辑 示例代码 颜色矢量的分量乘法来计算两个纹素最终的片元颜色 注册事件响应函数&#xff1a;loadTexture&#xff08;&#xff09;&#xff0c;最后一个参数是纹理单元编号。 请求浏览器加载图像&#xff1a; 配置纹理&#xff1a;loadTexture&#xff0…...

探索云计算和大数据分析的崛起:API行业的机遇与挑战【电商大数据与电商API接入】

I. 引言 随着云计算和大数据分析技术的快速发展&#xff0c;企业和个人对数据分析和处理的需求不断增加。在这个信息爆炸的时代&#xff0c;数据已成为企业决策和战略规划的重要基础。云计算提供了强大的计算和存储能力&#xff0c;使得大规模数据的处理和分析变得更加容易和高…...

android studio通过wifi、无线连接设备

AndroidStudio无线wifi调试设备_android studio wifi_zwylovemzj的博客-CSDN博客 使用​​adbWireless​​工具&#xff0c;其能够让手机用无线来取代USB连接而使用ADB工具 1. 手机需要与电脑在同一局域网内 2. 把adbWireless安装到手机上&#xff0c;并开启&#xff0c;上面…...

正确的网线的顺序图/培训推广 seo

https://doc.alidayu.com/doc2/index.htm 一条0.045 元 新注册送10块 转载于:https://www.cnblogs.com/as3lib/p/6804980.html...

网站代码怎么打开/鸡西seo顾问

...

网站建设心得/一站式营销平台

Description 对于任意的>1的n gcd(a, b)不是n^2的倍数 也就是说gcd(a, b)没有一个因子的次数>2 Input 一个正整数T表示数据组数 接下来T行 每行两个正整数 表示N、M Output T行 每行一个整数 表示第i组数据的结果 Sample Input 42 43 36 58 3Sample Output 2428…...

网站怎么做才/国际新闻界官网

这里只是推荐一下好用的插件&#xff0c;具体的使用方法不一一详细介绍。 JRebel for IntelliJ 一款热部署插件&#xff0c;只要不是修改了项目的配置文件&#xff0c;用它都可以实现热部署。收费的&#xff0c;破解比较麻烦。不过功能确实很强大。算是开发必备神器了。热部署…...

tp5做企业网站/磁力王

style.display ""&#xff1b;是清除display样式&#xff0c;display将使用默认值&#xff08;块元素会变成block&#xff0c;内联元素会变成inline&#xff09;style.display"none"&#xff1b; 中“none”是一个值&#xff0c;表示元素将隐藏转载于:htt…...

自己在公司上班做网站宣传 侵权吗/网站设计的毕业论文

/*整体程序是为了体现类的封装性,以* 及如何* 在自定义类中进行对集合赋值的操作* 改程序是为了设计一个随机点名器* 1.定义一个方法且设置其功能为存储学生信息&#xff08;将该功能封装在该方法中&#xff09;。* 2.用遍历的方式输出该集合中所有的学生信息* 3.随机数类的使用…...