Tensorflow神經網絡的一個小栗子:
- 生成數據(create data):
- 擬合的方程為 y = 0.1 * x + 0.3
- 聲明網絡結構:
- 參數初始化
- 核函數(有時候需要激活函數)
- 損失函數
- 選擇優化器(optimizer)
- 訓練函數 = 優化器最小化損失函數
- 創建session,初始化變量
- 訓練網絡
1 import tensorflow as tf 2 import numpy as np 3 4 #create data 5 x_data = np.random.rand(100).astype(np.float32) 6 y_data = x_data*0.1+0.3 7 8 ###create tensorflow structure start### 9 Weights = tf.Variable(tf.random_uniform([1],-1.0,1.0)) 10 biases = tf.Variable(tf.zeros([1])) 11 12 y = Weights * x_data + biases 13 14 loss = tf.reduce_mean(tf.square(y-y_data)) 15 optimizer = tf.train.GradientDescentOptimizer(0.5) #學習率 = 0.5 16 train = optimizer.minimize(loss) 17 18 init = tf.initialize_all_variables() 19 ###create tensorflow structure end### 20 sess = tf.Session() 21 sess.run(init) 22 for step in range(201): 23 sess.run(train) 24 if step % 20 == 0: 25 print(step,sess.run(Weights),sess.run(biases))
運行結果:
?訓練200次后,基本上可以擬合 y = 0.1 * x + 0.3