实现步骤
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
#定义二次代价函数
loss = tf.reduce_mean(tf.square(y_data - y))
- 使用tensorflow中的梯度下降法训练优化器,设置学习率(此处学习率设为0.2)
#定义一个梯度下降法来训练优化器,学习率设置为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(220):
sess.run(train)
if step%20 == 0:
print(step,sess.run([k,b]))
由上可见,k趋近于0.1,b趋近于0.2,即我们训练出的模型和定义的线性模型基本相同