TensorFlow練習(三)——新增層 def add_layer()
阿新 • • 發佈:2019-01-30
在 Tensorflow 裡定義一個新增層的函式可以很容易的新增神經層,為之後的新增省下不少時間.
神經層裡常見的引數通常有weights
、biases
和激勵函式。
首先,我們需要匯入tensorflow
模組。
import tensorflow as tf
然後定義新增神經層的函式def
add_layer()
,它有四個引數:輸入值、輸入的大小、輸出的大小和激勵函式,我們設定預設的激勵函式是None
。def add_layer(inputs, in_size, out_size, activation_function=None):
接下來,我們開始定義weights
和biases
因為在生成初始引數時,隨機變數(normal distribution)會比全部為0要好很多,所以我們這裡的weights
為一個in_size
行, out_size
列的隨機變數矩陣。
Weights = tf.Variable(tf.random_normal([in_size, out_size]))
在機器學習中,biases
的推薦值不為0,所以我們這裡是在0向量的基礎上又加了0.1
。biases = tf.Variable(tf.zeros([1, out_size]) + 0.1)
下面,我們定義Wx_plus_b
,
即神經網路未啟用的值。其中,tf.matmul()
是矩陣的乘法。當Wx_plus_b = tf.matmul(inputs, Weights) + biases
activation_function
——激勵函式為None
時,輸出就是當前的預測值——Wx_plus_b
,不為None
時,就把Wx_plus_b
傳到activation_function()
函式中得到輸出。if activation_function is None:
outputs = Wx_plus_b
else:
outputs = activation_function(Wx_plus_b)
最後,返回輸出,新增一個神經層的函式——def
add_layer()
就定義好了。return outputs