tensorflow训练线性回归模型

完整代码

import tensorflow as tf
import matplotlib.pyplot as plt
import numpy as np

#样本数据
x_train = np.linspace(-1,1,300)[:,np.newaxis]
noise = np.random.normal(0, 0.1, x_train.shape)
y_train = x_train * 3 + noise + 0.8

#线性模型
W = tf.Variable([0.1],dtype = tf.float32)
b = tf.Variable([0.1],dtype = tf.float32)
x = tf.placeholder(tf.float32)
line_model = W * x + b

#损失模型
y = tf.placeholder(tf.float32)
loss = tf.reduce_sum(tf.square(line_model - y))

#创建优化器
optimizer = tf.train.GradientDescentOptimizer(0.001)
train = optimizer.minimize(loss)

#初始化变量
init = tf.global_variables_initializer()
sess = tf.Session()
sess.run(init)

# 绘制样本数据
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.scatter(x_train, y_train)
plt.ion()
plt.show()
plt.pause(3)

#训练100次
for i in range(100):
    #每隔10次打印1次成果
    if i % 10 == 0:
        print(i)
        print('W:%s  b:%s' % (sess.run(W),sess.run(b)))
        print('loss:%s' % (sess.run(loss,{x:x_train,y:y_train})))
    sess.run(train,{x:x_train,y:y_train})

print('---')
print('W:%s  b:%s' % (sess.run(W),sess.run(b)))
print('loss:%s' % (sess.run(loss,{x:x_train,y:y_train})))

样本训练数据分布如下

输出结果如下

结论

通过打印结果可以看到W已经非常接近初始给定的3,b也非常接近给定的0.8 (误差不可避免)

原文地址:https://www.cnblogs.com/maskerk/p/9973503.html

时间: 2024-11-15 03:58:58

tensorflow训练线性回归模型的相关文章

用Pytorch训练线性回归模型

假定我们要拟合的线性方程是:\(y=2x+1\) \(x\):[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] \(y\):[1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29] import torch import torch.nn as nn from torch.autograd import Variable import numpy as np import matplotli

自学tensorflow——2.使用tensorflow计算线性回归模型

废话不多说,直接开始 1.首先,导入所需的模块: import numpy as np import os import tensorflow as tf 关闭tensorflow输出的一大堆硬件信息 os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' 2.写一个函数generate_data(),用来生成我们所需要的数据,这里使用的线性函数是y = 0.1*x + 0.3,具体解释见注释 def generate_data():#随机生成测试数据 num_poin

线性回归模型的 MXNet 与 TensorFlow 实现

本文主要探索如何使用深度学习框架 MXNet 或 TensorFlow 实现线性回归模型?并且以 Kaggle 上数据集 USA_Housing 做线性回归任务来预测房价. 回归任务,scikit-learn 亦可以实现,具体操作可以查看 线性回归模型的原理与 scikit-learn 实现. 载入数据 import pandas as pd import numpy as np name = '../dataset/USA_Housing.csv' dataset = pd.read_csv(

用Tensorflow完成简单的线性回归模型

思路:在数据上选择一条直线y=Wx+b,在这条直线上附件随机生成一些数据点如下图,让TensorFlow建立回归模型,去学习什么样的W和b能更好去拟合这些数据点. 1)随机生成1000个数据点,围绕在y=0.1x+0.3 周围,设置W=0.1,b=0.3,届时看构建的模型是否能学习到w和b的值. import numpy as np import tensorflow as tf import matplotlib.pyplot as plt num_points=1000 vectors_se

tensorflow入门(1):构造线性回归模型

今天让我们一起来学习如何用TF实现线性回归模型.所谓线性回归模型就是y = W * x + b的形式的表达式拟合的模型. 我们先假设一条直线为 y = 0.1x + 0.3,即W = 0.1,b = 0.3,然后利用随机数在这条直线附近产生1000个随机点,然后利用tensorflow构造的线性模型去学习,最后对比模型所得的W和b与真实值的差距即可. (某天在浏览Github的时候,发现了一个好东西,Github上有一个比较好的有关tensorflow的Demo合集,有注释有源代码非常适合新手入

TensorFlow训练Logistic回归

Logistic回归 在用线性模型进行回归训练时,有时需要根据这个线性模型进行分类,则要找到一个单调可微的用于分类的函数将线性回归模型的预测值关联起来.这时就要用到逻辑回归,之前看吴军博士的<数学之美>中说腾讯和谷歌广告都有使用logistics回归算法. 如下图,可以清晰看到线性回归和逻辑回归的关系,一个线性方程被逻辑方程归一化后就成了逻辑回归.. Logistic模型 对于二分类,输出y∈{0,1},假如线性回归模型为z=θTx,则要将z转成y,即y=g(z).于是最直接的方式是用单位阶跃

tensorflow训练自己的数据集实现CNN图像分类

利用卷积神经网络训练图像数据分为以下几个步骤 读取图片文件 产生用于训练的批次 定义训练的模型(包括初始化参数,卷积.池化层等参数.网络) 训练 1 读取图片文件 1 def get_files(filename): 2 class_train = [] 3 label_train = [] 4 for train_class in os.listdir(filename): 5 for pic in os.listdir(filename+train_class): 6 class_train

R语言解读多元线性回归模型

转载:http://blog.fens.me/r-multi-linear-regression/ 前言 本文接上一篇R语言解读一元线性回归模型.在许多生活和工作的实际问题中,影响因变量的因素可能不止一个,比如对于知识水平越高的人,收入水平也越高,这样的一个结论.这其中可能包括了因为更好的家庭条件,所以有了更好的教育:因为在一线城市发展,所以有了更好的工作机会:所处的行业赶上了大的经济上行周期等.要想解读这些规律,是复杂的.多维度的,多元回归分析方法更适合解读生活的规律. 由于本文为非统计的专业

线性回归模型

线性回归模型,即一个函数,这个函数里含有未知的参数,通过学习,可以估计出参数.然后利用这个模型去预测/分类新的数据. 线性回归形式简单,易于建模.许多更为强大的非线性模型可以在该模型基础上引入层级结构或高维映射而得. 线性回归模型基本形式 给定由d个属性表述的示例x=(X1,X2,X3...),期中每个Xi表示x在第i个属性上的取值,线性模型试图去学得一个通过属性的线性组合来进行预测的函数 f(x)= w1X1+w2X2+w3X3+...+wdXd+b 向量表示: f(x) = wTx+b 期中