tensorflow2.0线性回归,tensorflow 回归
这篇文章主要为大家详细介绍了张量流实现简单线性回归,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了张量流实现简单线性回归的具体代码,供大家参考,具体内容如下
简单的一元线性回归
一元线性回归公式:
其中x是特征:[x1,x2,x3,…,xn,]T
w是权重,b是偏置值
代码实现
导入必须的包
将张量流作为法国南部(French Southern Territories的缩写)导入
将matplotlib.pyplot作为血小板计数导入
将数组作为铭牌导入
导入操作系统
# 屏蔽警告以下的日志信息
OS。environ[ TF _ CPP _ MIN _ LOG _ LEVEL ]= 2
产生模拟数据
定义生成数据():
x=TF。常数(NP。array([I for I in range(0,100,5)]).整形(-1,1),tf.float32)
y=tf.add(tf.matmul(x,[[1.3]]) 1,tf.random_normal([20,1],stddev=30))
返回x,y
x是100行一列的数据,tf.matmul是矩阵相乘,所以权值设置成二维的。
设置的w是1.3,b是一
实现回归
def myregression():
自实现线性回归
:返回:
x,y=generate_data()
# 建立模型y=x * w b
# w 1x1的二维数据
w=tf .变量(tf.random_normal([1,1],mean=0.0,stddev=1.0),name=weight_a )
b=tf .变量(0.0,name=bias_b )
y_predict=tf.matmul(x,a) b
# 建立损失函数
损失=TF。reduce _均值(TF。square(y _ predict-y))
# 训练
train _ op=TF。火车。梯度下降优化器(0.1).最小化(损失=损失)
# 初始化全局变量
init _ op=TF。global _ variables _初始值设定项()
用tf .会话()为sess:
sess.run(init_op)
打印(初始的权重:%f偏置值:% f"%(a . eval()、b.eval()))
# 训练优化
对于范围(1,100):内的我
sess.run(训练_操作)
打印(第%d次优化的权重:%f偏置值:%f % (i,a.eval(),b.eval()))
# 显示回归效果
show_img(x.eval(),y.eval(),y_predict.eval())
使用绘制精美的图表查看回归效果
def show_img(x,y,y_pre):
平面散点图(x,y)
plt.plot(x,y_pre)
plt.show()
完整代码
将张量流作为法国南部(French Southern Territories的缩写)导入
将matplotlib.pyplot作为血小板计数导入
将数组作为铭牌导入
导入操作系统
OS。environ[ TF _ CPP _ MIN _ LOG _ LEVEL ]= 2
定义生成数据():
x=TF。常数(NP。array([I for I in range(0,100,5)]).整形(-1,1),tf.float32)
y=tf.add(tf.matmul(x,[[1.3]]) 1,tf.random_normal([20,1],stddev=30))
返回x,y
def myregression():
自实现线性回归
:返回:
x,y=generate_data()
# 建立模型y=x * w b
w=tf .变量(tf.random_normal([1,1],mean=0.0,stddev=1.0),name=weight_a )
b=tf .变量(0.0,name=bias_b )
y_predict=tf.matmul(x,w) b
# 建立损失函数
损失=TF。reduce _均值(TF。square(y _ predict-y))
# 训练
train _ op=TF。火车。gradiendescentoptimizer(0.0001).最小化(损失=损失)
init _ op=TF。global _ variables _初始值设定项()
用tf .会话()为sess:
sess.run(init_op)
打印(初始的权重:%f偏置值:%f % (w.eval()、b.eval()))
# 训练优化
对于我,范围为(1,35000):
sess.run(训练_操作)
打印(第%d次优化的权重:%f偏置值:%f % (i,w.eval(),b.eval()))
show_img(x.eval(),y.eval(),y_predict.eval())
def show_img(x,y,y_pre):
平面散点图(x,y)
plt.plot(x,y_pre)
plt.show()
if __name__==__main__:
我的回归()
看看训练的结果(因为数据是随机产生的,每次的训练结果都会不同,可适当调节梯度下降的学习率和训练步数)
35000次的训练结果
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持盛行信息技术软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。