初试用tensorflow写个简单的线性回归

浏览: 2535

这些代码是以前写学习用的,最近整理发一下;简单线性回归方程式:Y=wX+b,至于一些理论知识这里就不在重复叙述了,

因为已经老生常谈了,使用TensorFlow一个好处就是可以不需要构造后向过程,也就是所谓的参数更新

理论知识可以参考这个:https://ask.hellobi.com/blog/fensme/6772

环境:PY3.6

TENSORFLOW:1.3

代码如下

可以算是入门代码,大部分代码都有步骤说明,这里就不一一详细说明了

# -*- coding: utf-8 -*-
import tensorflow as tf
import numpy as np
#定义数据
x_data = np.float32(np.random.rand(2, 100)) # 随机输入
#构造方程式的数据y=0.1x+0.2x+0.3
y_data = np.dot([0.100, 0.200], x_data) + 0.300
#定义变量
b = tf.Variable(tf.zeros([1]))
#w1 w2,b
W = tf.Variable(tf.random_uniform([1, 2], -1.0, 1.0))
#定义公式
y = tf.matmul(W, x_data) + b
#定义损失函数
loss = tf.reduce_mean(tf.square(y - y_data))
#0.5是学习率,选择参数更新方式是随机梯度
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)
#初始化变量
init = tf.initialize_all_variables()
#启动图
sess = tf.Session()
sess.run(init)
#拟合
for step in range(0, 20100):
sess.run(train)
#每二十步打印一次
if step % 20 == 0:
print( "step:",step, "loss:",sess.run(loss),sess.run(W), sess.run(b))

结果如下

图片.png

误差基本已经可以忽略不计,系数什么已经接近实际值

推荐 6
本文由 夏尔康 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

明天试下
尔康哥好厉害

要回复文章请先登录注册