本篇播客利用了TensorFlow实现了曲线y = kx + b中参数k,b的求解,代码如下
import tensorflow as tf
import numpy as np
import os
os.environ["TF_CPP_MIN_LOG_LEVEL"] = '2' # 只显示 warning 和 Error
x_data = np.random.rand(100) # 生成100个随机数
y_data = x_data * 0.2 + 0.4 # 得到真值y
k = tf.Variable(0.) # 定义变量 float
b = tf.Variable(0.) # 定义变量 float
y = k * x_data + b # 曲线模型
loss = tf.reduce_mean(tf.square(y - y_data)) # 损失函数
optimizer = tf.train.GradientDescentOptimizer(0.01) # 定义一个优化器为优化Loss,指定学习率为0.01
train = optimizer.minimize(loss) # 优化Loss
# 至此计算图已经定义好了,后面是初始化及在session中启动图
init = tf.global_variables_initializer() # 只要使用到变量,就要加上这句,初始化所有变量
with tf.Session() as sess:
sess.run(init) # 只要存在变量,必须先在session中运行初始化变量
for step in range(1001):
sess.run(train)
if step % 100 == 0:
print(step, sess.run([k, b]))