import tensorflow as tf
import numpy as np
#我们用 tf.Variable 来创建描述 y 的参数.
# 我们可以把 y_data = x_data*0.1 + 0.3 想象成 y=Weights * x + biases,
# 然后神经网络也就是学着把 Weights 变成 0.1, biases 变成 0.3.
x_data = np.float32(np.random.rand(100))
y_data = x_data*0.1+0.3
#搭建模型
shape = tf.Variable([1])
Weights = tf.Variable(tf.random_uniform(shape, -1.0, 1.0),validate_shape=False)
biase = tf.Variable(tf.zeros([1]))
y = Weights*x_data+biase
#计算误差
loss = tf.reduce_mean(tf.square(y-y_data))
#优化器
#反向传递误差的工作就教给optimizer了,
# 我们使用的误差传递方法是梯度下降法: Gradient Descent 让后我们使用 optimizer 来进行参数的更新.
optimizier = tf.train.GradientDescentOptimizer(0.5)
train = optimizier.minimize(loss)
#初始化
init = tf.global_variables_initializer()
#激活
sess = tf.Session()#创建一个会话。
sess.run(init)#来执行操作
#训练
for step in range(200):
sess.run(train)
if step % 20 == 0:
print("步数:{} 权重:{} 偏向:{}".format(step, sess.run(Weights), sess.run(biase)))