代码片段1:
#!/usr/local/bin/python3
#coding=utf-8
import tensorflow as tf
import numpy as np
# 使用 NumPy 生成假数据(phony data), 总共 100 个点.
x_data = np.float32(np.random.rand(2, 100))
y_data = np.dot([0.100, 0.200], x_data) + 0.300
# 构造一个线性模型
b = tf.Variable(tf.zeros([1]))
W = tf.Variable(tf.random_uniform([1, 2], -1.0, 1.0))
y = tf.matmul(W, x_data) + b
# 最小化方差
loss = tf.reduce_mean(tf.square(y - y_data))
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)
# 初始化变量
init = tf.initialize_all_variables()
# 启动图 (graph)
sess = tf.Session()
sess.run(init)
# 拟合平面
for step in range(0, 201):
sess.run(train)
if step % 20 == 0:
print(step, sess.run(W), sess.run(b))
执行结果:
0 [[ 0.89875054 -0.23511408]] [ 0.26361006]
20 [[ 0.25475565 0.14224848]] [ 0.25294781]
40 [[ 0.13501789 0.1978661 ]] [ 0.28352791]
60 [[ 0.10880589 0.20211041]] [ 0.2944476]
80 [[ 0.10242794 0.20115849]] [ 0.29816189]
100 [[ 0.10071593 0.20045617]] [ 0.29939696]
120 [[ 0.10022036 0.20016167]] [ 0.29980305]
140 [[ 0.10006954 0.20005481]] [ 0.29993585]
160 [[ 0.10002226 0.20001821]] [ 0.29997912]
180 [[ 0.10000716 0.20000596]] [ 0.29999322]
200 [[ 0.10000233 0.20000196]] [ 0.29999781]