线性回归最通俗易懂理解-python tensorflow版-2

本代码主要讲述一元线性回归实践干货

1、引入相关模块,%matplotlib inline表示在jupyter显示图表

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

2、生成数据集,x_data,y_data,y_data函数为y=wx+b=3x+1,其中np.random.randn(1000)是随机噪点

x_data = np.random.randn(1000)
y_data = 3*x_data+1+np.random.randn(1000)

3、显示matplot显示产生的散点图及直线图

plt.scatter(x_data,y_data)
plt.plot(x_data,3*x_data+1,linewidth=2,color='red')

 

4、构建只有一个神经元的神经网络

1、构建超参数,学习轮数,学习率

epoch = 100
learning_rate = 0.005

2、构建占位符

X = tf.placeholder(tf.float32,name="X")
Y = tf.placeholder(tf.float32,name="Y")

3、定义变量

W = tf.Variable(1.0,name="W")
b = tf.Variable(0.0,name="b")

4、定义函数模型,损失函数,优化器

pred = tf.multiply(W,X)+b
loss_function = tf.reduce_mean(tf.pow(Y-pred,2))
optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(loss_function)

5、初始化所有参数

init = tf.global_variables_initializer()
sess = tf.Session()
sess.run(init)

6、根据超参数开始学习

for i in range(epoch):
    for xs,ys in zip(x_data,y_data):
        _,loss_label = sess.run([optimizer,loss_function],feed_dict={X:xs,Y:ys})

7、学习完毕打印学习后的权值,偏置项及最终的学习后的图像与初始定义的图像shi'fou

w = sess.run(W)
b1 = sess.run(b)
print("W=",w)
print("b=",b1)
plt.plot(x_data,w*x_data+b1,color='red',linewidth='2')
plt.plot(x_data,3*x_data+1,linewidth=2,color='blue')
print("Train finished")

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值