tensorflow⼊门01——搭建简单的线性回归模型
这两天跟着⽼师发的视频开始⼊门深度学习,虽然之前有过⼀段时间的接触,但并没有什么有效的进展,现在算是正式开始整了,希望可以通过这⼀个多⽉的寒假有所收获吧。
·Tensorflow是⼀种计算图模型,即⽤图的形式来表⽰运算过程的⼀种模型。Tensorflow程序⼀般分为图的构建和图的执⾏两个阶段。图的构建阶段也称为图的定义阶段,该过程会在图模型中定义所需的运算,每次运算的的结果以及原始的输⼊数据都可称为⼀个节点。
·线性回归是利⽤数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的⼀种统计分析⽅法,运⽤⼗分⼴泛。其表达形式为y = w'x+e,e为误差服从均值为0的正态分布。回归分析中,只包括⼀个⾃变量和⼀个因变量,且⼆者的关系可⽤⼀条直线近似表⽰,这种回归分析称为⼀元线性回归分析。如果回归分析中包括两个或两个以上的⾃变量,且因变量和⾃变量之间是线性关系,则称为多元线性回归分析。
下⾯⽤tensorflow搭建了⼀个简单的线性回归模型。
import tensorflowpat.v1 as tf
tf.disable_v2_behavior()
import numpy as np
import matplotlib.pyplot as plt
import os
#训练参数
learn_rate=0.1
training_epochs=200
display_step=50
train_x=[]
train_y=[]
#⽣成训练数据
for i in range(training_epochs):
x=al(0.0,0.55)
y=0.3*x+2+al(0.0,0.05)
train_x.append(x)
train_y.append(y)
train_x=np.asarray(train_x)
train_y=np.asarray(train_y)
n_samples=train_x.shape[0]
#初始权重
tensorflow入门教程w=tf.Variable(np.random.randn(),name="weight")
b=tf.Variable(np.random.randn(),name="bias")
#构造线性回归模型
pred=w*train_x+b
#lost
duce_sum(tf.pow(pred-train_y,2))/(2*n_samples)
#tf⾃带的梯度下降算法
ain.GradientDescentOptimizer(learn_rate).minimize(lost)
#初始化
init=tf.global_variables_initializer()
#创建tfsession
with tf.Session() as sess:
sess.run(init)
#开始训练
for epoch in range(training_epochs):
sess.run(optimizer)
print("cost=", sess.run(lost), "W=", sess.run(w), "b=", sess.run(b))
train_lost=sess.run(lost)
print("cost=",train_lost,"W=",sess.run(w),"b=",sess.run(b))
plt.plot(train_x,train_y,'ro')
plt.plot(train_x,sess.run(w)*train_x+sess.run(b))
plt.legend()
plt.show()
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论