这些代码是以前写学习用的,最近整理发一下;简单线性回归方程式: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))
结果如下
误差基本已经可以忽略不计,系数什么已经接近实际值