1. 直线拟合,几乎是模板程序
#y 是网络计算出来的数据,y_data是真实数据
# 平方差代价函数 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()
sess = tf.Session() sess.run(init) # run一个图标,init被激活 重要的一步2. 网络的训练过程
for step in range(200):
sess.run(train) if step % 20 == 0: #打印步数,权值,偏置 print(step, sess.run(Weights), sess.run(biases))结果:
0 [ 0.37922099] [ 0.02147558]
20 [ 0.20696808] [ 0.24341425]
40 [ 0.13433076] [ 0.28183916]
60 [ 0.11101826] [ 0.29417139]
80 [ 0.10353626] [ 0.29812935]
100 [ 0.10113496] [ 0.29939961]
120 [ 0.10036424] [ 0.29980734]
140 [ 0.10011692] [ 0.29993817]
160 [ 0.10003753] [ 0.29998016]
180 [ 0.10001207] [ 0.29999363]