大致过程是:
先生成函数为 y = 0.1x + 0.3 的x、y的数据,即 k = 0.1, b = 0.3
设 k, b 初始为随机数,进行 200 次学习,每隔 20 次输出一下训练结果
具体代码如下:
# coding: utf-8
import tensorflow as tf
import numpy as np
# 创造数据,y = 0.1x + 0.3
x_data = np.random.rand(100).astype(np.float32)
y_data = x_data * 0.1 + 0.3
### 开始创建 tensorflow ###
# 可能为矩阵,首字母大写
# 随机数列生成,一维的,范围[-1, 1]的数
Weights = tf.Variable(tf.random_uniform([1], -1.0, 1.0))
# 初始值为 0 的一维的数
biases = tf.Variable(tf.zeros([1]))
y = Weights * x_data + biases
# 预测值与真实值的差别
loss = tf.reduce_mean(tf.square(y - y_data))
# 建立优化器,减少误差,提高参数的准确度
# 学习效率是一个小于 1 的数,这里设为 0.5
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)
# 初始化
init = tf.global_variables_initializer()
### 创建完毕 ###
# 激活 tensorflow
sess = tf.Session()
sess.run(init)
for step in range(201):
sess.run(train)
# 每隔 20 步输出运行结果
if step % 20 == 0:
print step, sess.run(Weights), sess.run(biases)