我是靠谱客的博主 痴情乐曲,最近开发中收集的这篇文章主要介绍实验1:tensorflow 实现线性回归实验1 tensorflow 实现线性回归,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

实验1 tensorflow 实现线性回归

说在前面

本实验使用tensorflow来实现一元线性回归。

背景:拿到手上有一堆数据,想要建立一元线性函数
y = wx+b来拟合这些数据
思想:建立的一元线性函数被w,b唯一确定,任务就是找到这两个参数。随机初始化w,b;建立损失函数来评估w,b的好坏;采用梯度下降法更新w,b的取值;

实验步骤

  1. 生成带噪声的数据,原数据服从sin函数分布
  2. 定义输入输出、变量(权重与偏置)、损失函数、优化器
  3. 开始训练
  4. 输出最终结果、可视化

主要API

API功能
tf.placeholder()定义输入输出的容器
tf.Variable()定义变量
tf.train.GradientDescentOptimizer().minimize()梯度下降
tf.global_variables_initializer()初始化变量
tf.Session()创建执行环境
sess.run()执行喂入的节点

具体代码

import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = (14, 8)
# 1.生成带噪声的数据
n = 100
xs = np.linspace(-3,3,n)
ys = np.sin(xs) + np.random.uniform(-0.5,0.5,n)
plt.scatter(xs,ys,s=100,marker='x')
# 2. 定义投入训练数据的容器
X = tf.placeholder(tf.float32)
Y = tf.placeholder(tf.float32)
# 4. 定义变量
W = tf.Variable(tf.random_normal([1]))# 定义初始化的参数服从的随机分布,变量的形状
b = tf.Variable(tf.random_normal([1]))
# 3. 定义损失函数
Y_pred = tf.add(tf.multiply(X,W),b)
loss = tf.square(Y - Y_pred)
# 4. 定义优化器
learning_rate = 0.01
optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(loss)# 定义优化方法:梯度下降,设置参数步长,定义最小化的loss
# 4. 开始优化过程
nsamples = len(xs)
with tf.Session() as sess: # 生成sess类型,用于优化
    init = tf.global_variables_initializer() # 初始化网络中的变量
    sess.run(init) 
    for i in range(50): # 定义epochs
        total_loss = 0 
        for x, y in zip(xs,ys): # 将定义好的数据集一个一个传入
            _, l = sess.run([optimizer,loss], feed_dict={X:x,Y:y}) # run会执行传入的节点以及节点的依赖节点, feeddict负责喂入placeholder的参数
            total_loss += l
        if i % 5 == 0:
            print('Epoch:{}, loss{}'.format(i, total_loss / nsamples)) # 指定轮次输出损失函数
    w,b = sess.run([W,b]) # 为打印变量也需要run变量
print('weight: {}, bais: {}'.format(w,b))
# 5. 可视化
plt.scatter(xs,ys,s=100,marker='x',label='data')
plt.plot(xs,w * xs + b,color='red',label='linearModel')
plt.legend()

实验结果

在这里插入图片描述

最后

以上就是痴情乐曲为你收集整理的实验1:tensorflow 实现线性回归实验1 tensorflow 实现线性回归的全部内容,希望文章能够帮你解决实验1:tensorflow 实现线性回归实验1 tensorflow 实现线性回归所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部