预设一个线性模型:
y = x*w + b(w = 0.1,b = 0.2)
x是给定的输入数据
使用tensorflow构建一个模型,开始的时候,w和b全部给成0,让其训练,使其接近预设的模型。即让w接近0.1,b接近0.2
代码:
import tensorflow as tf
import numpy as np
x_data = np.random.rand(100)
y_data = x_data*0.1 + 0.2
#构造一个线性模型
b = tf.Variable(0.)
k = tf.Variable(0.)
y = k*x_data + b
#均方误差
loss = tf.reduce_mean(tf.square(y_data - y))
#梯度下降
optimizer = tf.train.GradientDescentOptimizer(0.2)
#最小化代价函数
train = optimizer.minimize(loss)
init = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
for step in range(201):
sess.run(train)
if step%20 == 0:
print(step,sess.run([k,b]))
结果: