使用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

results matching ""

    No results matching ""