#coding=utf-8
import tensorflow as tf
import numpy as np
x_data = np.random.rand(3).astype(np.float32)
y_data = x_data * 0.1 + 0.3;
###
Weights = tf.Variable(tf.random_uniform([1],-1.0,1.0))
biases = tf.Variable(tf.zeros([1]))
y = Weights*x_data + biases
loss=tf.reduce_mean(tf.square(y-y_data))
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)
init = tf.global_variables_initializer()
###
sess = tf.Session()
sess.run(init)
for step in range(201):
print("Setp:%d", step);
print("Before run Weight: %g ;Biases:%g" %(sess.run(Weights) , sess.run(biases)))
sess.run(train)
print("After run Weight: %g ;Biases:%g" %(sess.run(Weights) , sess.run(biases)))
print("---------------------------------");
我們會看到執行sess.run(train)之后的wight 和 biases 會逐漸靠近我們設定的值。最后在一個很靠近我們設定值的位置趨於穩定。
loss=tf.reduce_mean(tf.square(y-y_data))
這里是就算我們計算值與真實值的差距。tf.reduce_mean方法會計算數組的平均值,以方便后面的優化函數優化我們的參數。
loss=tf.reduce_mean(tf.square(y-y_data))optimizer = tf.train.GradientDescentOptimizer(0.5)
這段代碼是我們選擇的優化我們神經網絡參數的優化算法。Tensorflow為我們提供了多種優化算法。后面我們會涉及到。0.5是我們設置的學習效率。
train = optimizer.minimize(loss)
這句代碼的意思是告訴優化算法,我們要逐漸縮小loss的值。
以上我們的TensorFlow神經圖就繪制好了。
執行一下代碼初始化變量。
init = tf.global_variables_initializer()
最后再一個循環中讓session不斷的按照設計的神經網絡訓練我們的參數,就逐步得到我們理想的結果了。
這只是一個簡單的DEMO,幫助初學者理解TensorFlow的運作過程。