Tensorflow梯度下降应用
import tensorflow as tf
import numpy as np
#使用numpy生成随机点
x_data = np.random.rand(100)
y_data = x_data*0.1 + 0.2
#构造一个线性模型
b = tf.Variable(0.0)
k = tf.Variable(0.0)
y = k*x_data+b
#二次代价函数
loss = tf.reduce_mean(tf.square(y_data-y))#误差平方求平均值
#定义一个梯度下降来进行训练的优化器
optimizer = tf.train.GradientDescentOptimizer(0.2)
#最小化代价函数
train = optimizer.minimize(loss)
#初始化变量
init = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
for index in range(201):
sess.run(train)
if index%10==0:
print(index,sess.run([k,b]))
###########输出
0 [0.058540713, 0.10185367] 10 [0.10913987, 0.19464658] 20 [0.10734161, 0.19575559] 30 [0.10587782, 0.19660187] 40 [0.10470589, 0.19727939] 50 [0.10376761, 0.19782184] 60 [0.10301641, 0.19825613] 70 [0.10241497, 0.19860384] 80 [0.10193346, 0.19888222] 90 [0.10154796, 0.19910508] 100 [0.10123933, 0.19928351] 110 [0.10099223, 0.19942637] 120 [0.10079438, 0.19954075] 130 [0.10063599, 0.19963232] 140 [0.10050918, 0.19970562] 150 [0.10040767, 0.19976433] 160 [0.10032637, 0.19981132] 170 [0.1002613, 0.19984894] 180 [0.1002092, 0.19987905] 190 [0.1001675, 0.19990316] 200 [0.10013408, 0.19992249]
QQ 3087438119