代码:
import tensorflow as tf import numpy as np #使用numpy生成100个随机点 #样本 x_data = np.random.rand(100) y_data = x_data * 0.1 + 0.2 #构造一个线性模型 b = tf.Variable(0.3) k = tf.Variable(1.0) y = k * x_data + b #二次代价函数 #误差的平方取平均值 loss = tf.reduce_mean(tf.square(y_data-y)) #定义一个梯度下降来进行训练的优化器 optimizaer = tf.train.GradientDescentOptimizer(0.2) #定义一个最小化代价函数 train = optimizaer.minimize(loss) #初始化变量 init = tf.global_variables_initializer() with tf.Session() as sess: sess.run(init) for step in range(201): sess.run(train) #每20次打印一下k和b的值 if step%20 == 0: print(step, sess.run([k, b]))
运行结果:
0 [0.84287709, 0.061396986] 20 [0.49860233, -0.032348074] 40 [0.35844025, 0.049353316] 60 [0.26756388, 0.1023258] 80 [0.20864277, 0.13667135] 100 [0.1704403, 0.15893984] 120 [0.14567113, 0.17337798] 140 [0.12961161, 0.18273918] 160 [0.11919918, 0.18880866] 180 [0.1124481, 0.19274391] 200 [0.10807092, 0.19529541]