Tensorflow实现梯度下降法

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.)
k=tf.Variable(0.)
y=k*x_data+b
#二次代价函数,y_data-y的平方累加再取平均数
loss=tf.reduce_mean(tf.square(y_data-y))
#定义一个梯度下降法来进行优化器,0.2为学习率
optimizer=tf.train.GradientDescentOptimizer(0.2)
#最小化代价函数
train=optimizer.minimize(loss)
#初始化变量
init=tf.global_variables_initializer()
with tf.Session() as sess:
    sess.run(init)
    for step in range(201):
        sess.run(train)
        if step%20==0:

            print(step,sess.run([k,b]))

运算结果为:

0 [0.057682134, 0.10132799]
20 [0.10607995, 0.19651425]
40 [0.10344628, 0.19802421]
60 [0.10195344, 0.19888006]
80 [0.10110728, 0.19936518]
100 [0.10062763, 0.19964017]
120 [0.10035577, 0.19979604]
140 [0.10020166, 0.19988438]
160 [0.10011431, 0.19993447]
180 [0.10006479, 0.19996285]
200 [0.10003671, 0.19997896]

你可能感兴趣的:(Tensorflow)