tensorflow求解线性回归
本文为个人学习记录,学习参考莫凡tensorflow
首先创建一个随机的浮点型的数据集:
x_data = np.random.rand(100).astype(np.float32)
y_data = x_data*0.2 + 0.1
在随机初始化权重和偏移量:
Weights = tf.Variable(tf.random_uniform([1], -1.0, 1.0))
biases = tf.Variable(tf.zeros([1]))
列出公式,估计的y值
y = Weights*x_data + biases
估计的y和真实的y,计算cost
loss = tf.reduce_mean(tf.square(y-y_data))
梯度下降优化
optimizer = tf.train.GradientDescentOptimizer(0.1) # 0.1 学习率 train = optimizer.minimize(loss)
我们只是建立了神经网络的结构, 还没有使用这个结构.
在使用这个结构之前, 我们必须先初始化所有之前定义的Variable, 所以这一步是很重要的。
init = tf.global_variables_initializer()
创建会话
sess = tf.Session()
sess.run(init)
print (x_data) print (y_data) for step in range(201): sess.run(train) if step % 20 == 0: print(step, sess.run(Weights), sess.run(biases))
完整代码:
import tensorflow as tf import numpy as np # create data x_data = np.random.rand(100).astype(np.float32) y_data = x_data*0.1 + 0.3 ### create tensorflow structure start ### Weights = tf.Variable(tf.random_uniform([1], -1.0, 1.0)) biases = tf.Variable(tf.zeros([1])) y = Weights*x_data + biases loss = tf.reduce_mean(tf.square(y-y_data)) optimizer = tf.train.GradientDescentOptimizer(0.5) train = optimizer.minimize(loss) ### create tensorflow structure end ### sess = tf.Session() # tf.initialize_all_variables() no long valid from # 2017-03-02 if using tensorflow >= 0.12 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) if step % 20 == 0: print(step, sess.run(Weights), sess.run(biases))

浙公网安备 33010602011771号