1. 程式人生 > >TensorFlow練習(三)——新增層 def add_layer()

TensorFlow練習(三)——新增層 def add_layer()

在 Tensorflow 裡定義一個新增層的函式可以很容易的新增神經層,為之後的新增省下不少時間.

神經層裡常見的引數通常有weightsbiases和激勵函式。

首先,我們需要匯入tensorflow模組。

import tensorflow as tf
然後定義新增神經層的函式def add_layer(),它有四個引數:輸入值、輸入的大小、輸出的大小和激勵函式,我們設定預設的激勵函式是None
def add_layer(inputs, in_size, out_size, activation_function=None):    

接下來,我們開始定義weightsbiases

因為在生成初始引數時,隨機變數(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