01-用TensorFlow实现线性回归

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 = tf.Variable(tf.random_uniform([1],-1.0,1.0))
b = tf.Variable(tf.zeros([1]))
#预测值
y_hat = x_data * w + b
#计算损失值
loss = tf.reduce_mean(tf.square(y_data - y_hat))
#利用梯度下降进行优化
train= tf.train.GradientDescentOptimizer(0.1).minimize(loss)

#初始化变量
init = tf.global_variables_initializer()
#创建session,进行参数初始化
with tf.Session() as sess:
  sess.run(init)
  for step in range(201):
    sess.run(train)
    if step % 20 == 0:
      print(step,sess.run(loss))
      print(step,sess.run(w),sess.run(b))

计算结果:

第0循环的损失值为:  0.02051302
0 [0.6330481] [0.00945955]
第20循环的损失值为:  0.0128848795
20 [0.5367511] [0.08212689]
第40循环的损失值为:  0.008339406
40 [0.4513946] [0.12477493]
第60循环的损失值为:  0.0053974683
60 [0.38269797] [0.15903115]
第80循环的损失值为:  0.0034933737
80 [0.32743126] [0.18659018]
第100循环的损失值为:  0.002260997
100 [0.28296906] [0.20876151]
第120循环的损失值为:  0.0014633737
120 [0.24719913] [0.22659838]
第140循环的损失值为:  0.00094713137
140 [0.2184221] [0.2409482]
第160循环的损失值为:  0.0006130066
160 [0.19527088] [0.25249267]
第180循环的损失值为:  0.00039675296
180 [0.1766457] [0.26178023]
第200循环的损失值为:  0.00025678836
200 [0.16166167] [0.2692521]

你可能感兴趣的:(01-用TensorFlow实现线性回归)