首页 > 其他分享 >实验6-使用TensorFlow完成线性回归

实验6-使用TensorFlow完成线性回归

时间:2024-05-14 21:53:22浏览次数:23  
标签:loss #%% plt name 回归 tf xs 线性 TensorFlow

VMware虚拟机 Ubuntu20-LTS

python3.6

tensorflow1.15.0

keras2.3.1

运行截图:

 

 

代码:

 

%matplotlib inline
import numpy as np
import tensorflow as tf
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = (14,8)

n_observations = 100
xs = np.linspace(-3, 3, n_observations)
ys = np.sin(xs) + np.random.uniform(-0.5, 0.5, n_observations)
plt.scatter(xs, ys)
plt.show()
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_pred = tf.add(tf.multiply(X, W), b)
#%%
loss = tf.square(Y - Y_pred, name='loss')
#%%
learning_rate = 0.01
optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(loss)
#%%
n_samples = xs.shape[0]
with tf.Session() as sess:
    # 记得初始化所有变量
    sess.run(tf.global_variables_initializer()) 
    
    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}) 
            total_loss += l
        if i%5 ==0:
            print('Epoch {0}: {1}'.format(i, total_loss/n_samples))

    # 关闭writer
    writer.close() 
    
    # 取出w和b的值
    W, b = sess.run([W, b]) 
print(W,b)
print("W:"+str(W[0]))
print("b:"+str(b[0]))
plt.plot(xs, ys, 'bo', label='Real data')
plt.plot(xs, xs * W + b, 'r', label='Predicted data')
plt.legend()
plt.show()

 

标签:loss,#%%,plt,name,回归,tf,xs,线性,TensorFlow
From: https://www.cnblogs.com/liucaizhi/p/18192332

相关文章

  • 实验7-使用TensorFlow完成MNIST手写体识别
    VMware虚拟机Ubuntu20-LTSpython3.6tensorflow1.15.0keras2.3.1运行截图:  代码:importosos.environ['TF_CPP_MIN_LOG_LEVEL']='2'importnumpyasnpimporttensorflowastffromtensorflow_core.examples.tutorials.mnistimportinput_datai......
  • SciTech-BigDataAIML-TensorFlow-Model: 模型建立与训练
    TensorFlow模型建立与训练TensorFlow模型建立与训练本章介绍如何使用TensorFlow快速搭建动态模型。模型的构建:tf.keras.Model和tf.keras.layers模型的损失函数:tf.keras.losses模型的优化器:tf.keras.optimizer模型的评估:tf.keras.metrics前置知识Python-{zh-......
  • FFT 优化常系数齐次线性递推式
    \(f_i\)序列满足\(f_i=\displaystyle\sum_{j=1}^kc_jf_{i-j}\)。\(k\le32000,n\le10^9\)。已知\(f_1\simf_k\)和\(c_1\simc_k\)。求\(f_n\)。这称为"\(k\)次齐次常系数线性递推式"。如果\(k\)比较小,可以用矩阵快速幂;但\(k\)太大,一次矩阵乘法都很慢。我们可......
  • 数据分享|python分类预测职员离职:逻辑回归、梯度提升、随机森林、XGB、CatBoost、LGB
    全文链接:https://tecdat.cn/?p=34434原文出处:拓端数据部落公众号分析师:ShilinChen离职率是企业保留人才能力的体现。分析预测职员是否有离职趋向有利于企业的人才管理,提升组织职员的心理健康,从而更有利于企业未来的发展。解决方案任务/目标采用分类这一方法构建6种模型对职......
  • 【视频】R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险|数据分享|附代码数据
    原文链接:http://tecdat.cn/?p=22410 最近我们被客户要求撰写关于逻辑回归的研究报告,包括一些图形和统计输出。本文介绍了逻辑回归并在R语言中用逻辑回归(Logistic回归)模型分类预测病人冠心病风险数据逻辑回归是机器学习借用的另一种统计分析方法。当我们的因变量是二分或二元时......
  • 查找 - 线性表 & 散列表 & 树
    线性表的查找顺序查找技巧:设置哨兵,放在下标为0的位置。intSearch_Seq(SSTableST,KeyTypekey){ST.R[0].key=key;for(inti=ST.length;ST.R[i].key!=key;i--);returni;}算法分析适用于顺序结构和链式结构,不要求记录按关键字有序。平均查找长度......
  • SciTech-BigDataAIML-TensorFlow-Model的编译:设置(LossFunction+Optimizer+Metrics)与
    机器学习|model.compile()用法model.compile()的作用:为经过设计的Model(神经网络模型)设置好:loss损失函数、optimizer优化器、metrics准确性评价函数。并且进行编译;Optimizers优化器:Optimizer的主要功能是作用在GD(梯度下降)的过程,使得Gradient(梯度)更快(快速......
  • 大白话解释逻辑回归
    记得在我学了线性回归之后的一段时间里,我觉得这个玩意太好用了,可以对世界上很多东西都进行预测,以至于一想到预测就想着拿点数据来进行回归。后来才知道,很多事情不是一条简单的直线可以拟合的。后来又知道,其实线性回归只要稍作修改,还是可以拟合这个世界上大部分事情的。是不是有点......
  • 逻辑斯特回归原理及Python实现
    逻辑回归(LogisticRegression),又称为logistic回归分析,是一种广义的线性回归模型,通常用于解决分类问题。虽然名字里有“回归”,但实际上它属于机器学习中的监督学习方法。逻辑回归最初用于解决二分类问题,它也可以通过一些技巧扩展到多分类问题。在实际应用中,我们通常使用给定的训......
  • [动态规划] 线性 dp
    线性dpSP15637GNYR04H按照编号从小到大摆放所有人每个人都只能放在已经存在的某个人的后面(除第一行外)任何一行的人数都不能比后一行多状态表示:\(f[a][b][c][d][e]\)表示第一行\(a\)个人,第二行\(b\)个人,...,第五行\(e\)个人的合法方案数然后在每个状态下......