初次学习tensorflow的使用,这次是用tensorflow的包装库写了一个线性回归预测的应用。
首先创建100个数据(x,y),最后预测x与y的关系,y=W*x+b,将loss函数优化迭代100,减到最小,得到W与b的值,最终得到y与x的关系。
import numpy as np
import tensorflow as tf
#创建数据
x_data=np.random.rand(100).astype(np.float32)
y_data=x_data*0.1+0.3
#初始化W与b
Weights=tf.Variable(tf.random_uniform([1],-1.0,1.0))
biases=tf.Variable(tf.zeros([1]))
y=Weights*x_data+biases
#loss函数
loss=tf.reduce_mean(tf.square(y-y_data))
#优化
optimizer=tf.train.GradientDescentOptimizer(0.5)
train=optimizer.minimize(loss)
#初始化所有的参数
init=tf.initialize_all_variables()
#指针激活init session:执行命令,对话控制
sess=tf.Session()
sess.run(init)
#循环迭代600次,每20次打印出W与b
for step in range(601):
sess.run(train)
if step%20==0:
print(step,sess.run(Weights),sess.run(biases))
最终循环迭代得到W与b的结果值W=0.1000001 b=0.2999995
所以y=0.1000001*x+0.2999995与刚开始100个数据y=0.1x+0.3结果差距不大。