纯码练习,具体看注释
适用人群:熟悉python,tensorflow初学者或了解TensorFlow再次知识回顾。
import tensorflow as tf
import numpy as np
#使用Numpy 随机生成样本数据,总共100个样本点
x_data = np.float32(np.random.rand(2,100))
y_data = np.dot([0.100,0.200],x_data) + 0.300 #np.dot()求内积函数
#构造一个线性模型
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()
#创建会话
sess = tf.Session()
sess.run(init)
#开始训练 ,迭代200步,输入格式化函数.format()
for step in range(0,201):
sess.run(train)
if step % 10 == 0 :
print('step:{0:4d} loss:{1:.12f} W1:{2:.4f} W2:{3:.4f} b:{4:.4f}'.format(step,
sess.run(loss),sess.run(W)[0][0],sess.run(W)[0][1],sess.run(b)[0]))
代码运行结果: