import numpy as np
import tensorflow as tf
# creat data
x_data = np.random.rand(100).astype(np.float32) # 随机生成100个数,每个数的类型是float32
y_data = x_data*0.1+0.3
### create tensorflow structure start ###
Weights = tf.Variable(tf.random_uniform(
[1], -1.0, 1.0)) # 随机生成初始化一个一维变量,范围是-1到1之间
biases = tf.Variable(tf.zeros([1])) # 初始为0的一维变量
y = Weights*x_data+biases # 输出y
loss = tf.reduce_mean(tf.square(y-y_data)) # 损失函数
optimizer = tf.train.GradientDescentOptimizer(0.5) # 学习效率 = 0.5
train = optimizer.minimize(loss) # 训练使损失函数最小
init = tf.initialize_all_variables() # 初始化所有变量
### create tensorflow structure end ###
sess = tf.Session()
sess.run(init) # very important
for step in range(201):
sess.run(train)
if step % 20 == 0:
print(step, sess.run(Weights), sess.run(biases))
输出结果:
0 [0.695308] [-0.03228082]
20 [0.24600948] [0.22218001]
40 [0.1354408] [0.28111082]
60 [0.10860254] [0.29541504]
80 [0.10208809] [0.2988871]
100 [0.10050684] [0.29972988]
120 [0.100123] [0.29993445]
140 [0.10002985] [0.2999841]
160 [0.10000724] [0.29999614]
180 [0.10000177] [0.2999991]
200 [0.10000043] [0.29999977]