Tensorflow实现线性回归
问题:怎么使用tensorflow实现简单的线性回归?
解答:
1.环境准备:
Dockerfile构建tensorflow的环境
python 3
2.实践代码
from __future__ import print_function
import tensorflow as tf
import numpy as np
#创建100个32位浮点数的数据
x_data = np.random.rand(100).astype(np.float32)
y_data = x_data*0.1 + 0.3
#创建所需线性回归的结构
##权重随机数(-1.0,1.0)
Weights = tf.Variable(tf.random_uniform[1],-1.0,1.0))
##偏置数/纵轴,(0)
biases = tf.Variable(tf.zeros[1])
##线性回归函数(权重×随机数+偏置)
y = Weights*x_data + biases
##方差公式
loss = tf.reduce_mean(tf.square(y-y_data))
##优化器(还有什么优化器呢?),这里是随机下降优化器,每次下降0.5
optimizer = tf.train.GradientDescentOptimizer(0.5)
#启动程序流程
##开一个会话,(tensorflow最近出了一个不使用的用法,后续会讲)
sess = tf.Session
##检测tensorflow版本
if int((tf.__version__).split('.')[1]) < 12 and int((tf.__version__).split('.')[0]) < 1:
init = tf.initialize_all_Variables()
else:
init = tf.global_variables_initializer()
sess.run(init)
for step in range(201):
sess.run(train)
#20次输出一次日志
if step % 20 == 0:
print(step, sess.run(Weights), sess.run(biases))
特别感谢莫烦大神的教程!
参考
莫烦Youku video tutorial: http://i.youku.com/pythontutorial