--coding:utf-8--
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt #这个是用可视化训练过程的
创造数据
x_data = np.random.rand(100).astype(np.float32)
y_data = x_data*34+2.42344
create tensorflow structure start 开始创建结构
Weights1 =tf.Variable(tf.random_uniform([1],0.0,1.0))
Weights2 =tf.Variable(tf.random_uniform([1],30.0,50.0)) #Variable 是一个参数变量
biases = tf.Variable(tf.zeros(shape=1)) #创建一个初始值为零的一维矩阵
y = x_data * Weights2 +biases
loss =tf.reduce_mean(tf.square(y-y_data)) #计算预测值 y 和实际值 y_data 的差别
tf.reduce_mean()这个函数是用来求平均数的
optimizer = tf.train.GradientDescentOptimizer(0.55)
#0.5 是学习效率
因为刚开始误差很大,所以要建立一个优化器,来减少误差
之后的每次预测误差都会更小, 这是key idea
train = optimizer.minimize(loss)
init =tf.initialize_all_variables()
初始化所有的结构
sess = tf.Session()
sess.run(init) #激活 init 这个初始结构的函数
下面是训练过程可视化
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.scatter(x_data,y_data)
plt.show()
上面是训练过程可视化
for step in range(1000):
sess.run(train)
if step%10==0 :
print(step,sess.run(Weights2),sess.run(biases),loss)