Tensorflow學習五—全連接配接

什麼是全連接配接
今天開始我們以神經層的形式開始介紹,首先介紹全連接配接層。
那麼什麼是全連接配接?
全連接配接層就是對n-1層和n層而言,n-1層的任意一個節點,都和第n層所有節點有連接配接。即第n層的每個節點在進行計算的時候,激活函數的輸入是n-1層所有節點的權重。換句話來說全連接配接層就是每一個結點都與上一層的所有結點相連,用來把前邊提取到的特征綜合起來。
在CNN中全連接配接層的作用?
在CNN(卷積神經網絡)中可以整合卷積層或者池化層中具有類别區分性的局部資訊.為了提升 CNN 網絡性能,全連接配接層每個神經元的激勵函數一般采用 ReLU 函數。最後一層全連接配接層的輸出值被傳遞給一個輸出,可以采用 softmax 邏輯回歸(softmax regression)進行 分 類,該層也可 稱為 softmax 層(softmax layer)。
tf.layers.dense(inputs,
units,
activation=None,
use_bias=True,
kernel_initializer=None,
bias_initializer=tf.zeros_initializer(),
kernel_regularizer=None,
bias_regularizer=None,
activity_regularizer=None,
kernel_constraint=None,
bias_constraint=None,
trainable=True,
name=None,
reuse=None)
• inputs:該層的輸入。
• units: 輸出的大小(維數),整數或long。
• activation: 使用什麼激活函數(神經網絡的非線性層),預設為None,不使用激活函數。
• use_bias: 使用bias為True(預設使用),不用bias改成False即可。
• kernel_initializer:權重矩陣的初始化函數。 如果為None(預設值),則使用tf.get_variable使用的預設初始化程式初始化權重。
• bias_initializer:bias的初始化函數。
• kernel_regularizer:權重矩陣的正則函數。
• bias_regularizer:bias的的正則函數。
• activity_regularizer:輸出的的正則函數。
• kernel_constraint:由優化器更新後應用于核心的可選投影函數(例如,用于實作層權重的範數限制或值限制)。 該函數必須将未投影的變量作為輸入,并且必須傳回投影變量(必須具有相同的形狀)。 在進行異步分布式教育訓練時,使用限制是不安全的。
• bias_constraint:由優化器更新後應用于偏差的可選投影函數。
• trainable:Boolean,如果為True,還将變量添加到圖集collectionGraphKeys.TRAINABLE_VARIABLES(參見tf.Variable)。
• name:名字
• reuse:Boolean,是否以同一名稱重用前一層的權重。
舉個例子:
model = keras.Sequential([
keras.layers.Dense(2, activation='relu'),
keras.layers.Dense(2, activation='relu'),
keras.layers.Dense(2)
])