使用numpy构建一组线性关系数据,通过Tensorflow实现的随机梯度算法,训练求解函数中的斜率和截距
准备训练数据
import tensorflow as tf
import numpy as np
train_X=np.linspace(-1,1,100)
train_Y=2*train_X+np.random.randn(*train_X.shape)*0.33+10
定义模型
X=tf.placeholder("float")
Y=tf.placeholder("float")
w=tf.Variable(0.0,name="weight")
b=tf.Variable(0.0,name="bias")
loss=tf.square(Y-tf.multiply(X,w)-b)
train_op=tf.train.GradientDescentOptimizer(0.01).minimize(loss)
创建session,训练模型
with tf.Session() as sess:
sess.run(tf.initialize_all_variables())
epoch=1
for i in range(10):
for(x,y) in zip(train_X,train_Y):
_,w_value,b_value=sess.run([train_op,w,b],feed_dict={X:x,Y:y})
print("Epoch:{},w:{},b:{}".format(epoch,w_value,b_value))
epoch+=1