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))
posted @ 2019-08-08 16:32  也许明天、  阅读(131)  评论(0)    收藏  举报