tensor flow 线性回归

Posted tuozizhang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tensor flow 线性回归相关的知识,希望对你有一定的参考价值。

# -*- coding: utf-8 -*-
"""
Spyder Editor

This is a temporary script file.
tensor flow 之线性回归模式
2019-oct-5
"""

技术图片

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

SIZE=100
np.random.seed(100)#np随机种子
tf.set_random_seed(100)#tf随机种子
#1、构建数据
x=np.linspace(0,2,SIZE) #等差数列
noise_x=np.random.normal(loc=0.0,scale=1.0,size=SIZE) #‘随机正太分布 增加噪音
x=x+noise_x

y=8*x+8 #用于填充Y数组
noise_y=np.random.normal(loc=0.0,scale=1.1,size=SIZE)
y=y+noise_y

#2、设置为矩阵的模型
x.shape=(-1,1)
y.shape=(-1,1)


#3、构建一个模型 y=w*x+b 设置tf变量 用于训炼
w=tf.Variable(initial_value=tf.random_uniform(shape=[1],minval=-1.0,maxval=1.0,name=‘w‘))
b=tf.Variable(initial_value=tf.zeros(shape=[1],name=‘b‘))

#4、得到预测值
y_hat=w*x+b

#5、构建损失函数 loss
loss=tf.reduce_mean(tf.square(y_hat-y),name=‘loss‘) #损失函数 loss=聚合平均值(差的平方)

#6、梯度下降 优化损失函数 ,让其最小
optiomizer=tf.train.GradientDescentOptimizer(learning_rate=0.05)#初始化变量 及学习
train=optiomizer.minimize(loss=loss) #求最小损失函数 loss

 

#执行训练
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
run_w,run_b,run_loss=sess.run([w,b,loss])
print(‘w=,b=,loss=‘.format(run_w,run_b,run_loss))


for i in range(100):#训练100次
sess.run(train)
run_w,run_b,run_loss=sess.run([w,b,loss])#取w,b,loss这三个东东的值 并打印展示
print(‘w=,b=,loss=‘.format(run_w,run_b,run_loss))

#画表展示
#画线
x_hat=np.linspace(x.min(),x.max())
print("x_hat=".format(x_hat))
y_hat2=run_w*x_hat+run_b
plt.plot(x_hat,y_hat2)
#画线
#画点
plt.plot(x,y,‘go‘) #go rs ro
#画点
plt.show()#显示

以上是关于tensor flow 线性回归的主要内容,如果未能解决你的问题,请参考以下文章

认识tensorflow-自模拟一个线性回归预测

Pytorch实现线性回归

Pytorch-张量tensor详解(线性回归实战)

Pytorch-张量tensor详解(线性回归实战)

深度学习-Pytorch张量tensor详解(线性回归实战)

Pytorch实现线性回归(手动完成)