Tensorflow 是很是重視結構的, 咱們得創建好了神經網絡的結構, 才能將數字放進去, 運行這個結構。
今天學習一下Tensorflow
的一個簡單的例子python
首先,須要加載tensorflow
和 numpy
兩個模塊,而且使用numpy
來建立數據。git
import tensorflow as tf import numpy as np # create data x_data = np.random.rand(100).astype(np.float32) y_data = x_data*0.1 + 0.3
使用tf.Variable
來建立描述y
的參數。github
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)
到目前爲止, 咱們只是創建了神經網絡的結構, 尚未使用這個結構. 在使用這個結構以前, 咱們必須先初始化全部以前定義的Variable
, 因此接下來這段很重要!dom
# init = tf.initialize_all_variables() # tf 立刻就要廢棄這種寫法 init = tf.global_variables_initializer() # 替換成這樣就好
接着,咱們再建立會話 Session
。函數
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))
跑了一下代碼,截圖以下
咱們能夠看到,這個一次函數的值Weights
和biases
原來是兩個隨機的值,經過200次的學習,一次一次更加趨近於原來的值,也就是0.1
和0.3
。學習
完整代碼以下:spa
from __future__ import print_function import os os.environ['TF_CPP_MIN_LOG_LEVEL']='2' import tensorflow as tf import numpy as np # create data x_data = np.random.rand(100).astype(np.float32) y_data = x_data*0.1 + 0.3 ### create tensorflow structure start ### 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) ### create tensorflow structure end ### sess = tf.Session() # tf.initialize_all_variables() no long valid from # 2017-03-02 if using tensorflow >= 0.12 if int((tf.__version__).split('.')[1]) < 12 and int((tf.__version__).split('.')[0]) < 1: init = tf.initialize_all_variables() else: init = tf.global_variables_initializer() sess.run(init) for step in range(201): sess.run(train) if step % 20 == 0: print(step, sess.run(Weights), sess.run(biases))
莫煩PYTHONcode