Keras學習系列——神經網絡層組件

對Keras提供的對各類層的抽象進行相對全面的歸納網絡

 

1 基礎經常使用層dom

名稱 做用 原型參數
Dense 實現全鏈接層 Dense(units,activation,use_bias=True, kernel_initializer=’glorot_uniform’, bias_initializer=’zeros’)
Activation 對上層輸出應用激活函數 Activation(activation)
Dropout 對上層輸出應用dropout以防止過擬合 Dropout(ratio)
Flatten 對上層輸出一維化 Flatten()
Reshape 對上層輸出reshape Reshape(target_shape)
Permute 對輸入的維度按照指定的順序交換並重排數據 Permute(dims)
RepeatVector 將輸入重複若干次後進行輸出 RepeatVector(n)
Lambda 對輸入施加TF/TH表達式後輸出 Lambda(function, output_shape,arguments=None)
Masking 屏蔽指定的序列值 Masking(mask_value=0.0)

PS1:Dense()參數說明ide

名稱 說明
units 層中單元數,也是輸出維度
activation 激活函數
use_bias 是否使用偏置
kernel_initializer 權值初始化方法
bias_initalizer 偏置初始化方法
kernel_regularizer 權值規範化方法
bias_regularizer 偏置規範化方法
activity_regularizer  
kernel_constraints 權值約束
bias_constraints 偏置約束

PS2: 預置激活函數/初始化器/正則化器說明函數

激活函數 初始化器 正則化器
softmax Zeros 全0 l1
elu Ones 全1 l2
softplus Constant 常數 l1_l2
softsign RandomNormal 正態分佈  
relu RandomUniform 平均分佈  
tanh TruncatedNormal 無尾正態  
sigmoid Orthogonal 正交矩陣  
hard_sigmoid Identity 單位矩陣  
linear glorot_normal  

 

2 卷積層spa

層名 做用 原型
Conv1D 1維卷積層 Conv1D(filters, kernel_size, strides=1, padding=’valid’)
Conv2D 2維卷積層 Conv2D(filters, kernel_size, strides=(1, 1), padding=’valid’,dilation_rate=(1, 1))
UpSampling1D 1維上採樣,將數據重複指定的次數 UpSampling2D(size=2)
UpSampling2D 2維上採樣,將數據在2個維度上重複指定的次數 UpSampling2D(size=(2, 2))
ZeroPadding2D 邊界填充0 ZeroPadding2D(padding=(1, 1))

 參數說明:orm

名稱 說明
filters 卷積核的數目(即輸出的維度)
kernel_size 卷積核的寬度和長度。如爲單個整數,表示在各個空間維度的相同長度
strides 爲卷積的步長。如爲單個整數,則表示在各個空間維度的相同步長
padding 補0策略,爲「valid」, 「same」
activation  
data_format channels_first或channels_last之一,表明圖像的通道維的位置,默認爲channels_last
use_bias  
kernel_initializer  
bias_initializer  
kernel_regularizer  
bias_regularizer  
activity_regularizer  
kernel_constraints  
bias_constraints  

 

3 池化層字符串

層名 做用 原型
MaxPooling1D 對1維輸入進行最大值池化過濾 MaxPooling1D(pool_size=2, strides=None, padding=’valid’)
AveragePooling1D 對1維輸入進行平均池化過濾 AveragePooling1D(pool_size=2, strides=None, padding=’valid’)
MaxPooling2D 對2維輸入進行最大值池化過濾 MaxPooling2D(pool_size=(2, 2), strides=None, padding=’valid’, data_format=None)
AveragePooling2D 對3維輸入進行平均池化過濾 AveragePooling2D(pool_size=(2, 2), strides=None, padding=’valid’, data_format=None)
GlobalMaxPooling1D 對1維輸入進行全局最大值池化過濾 GlobalMaxPooling1D()
GlobalAveragePooling1D 對1維輸入進行全局平均值池化過濾 GlobalAveragePooling1D()
GlobalMaxPooling2D 對2維輸入進行全局最大值池化過濾 GlobalMaxPooling2D()
GlobalAveragePooling2D 對2維輸入進行全局平均值池化過濾 GlobalAveragePooling2D()

2d參數說明get

 名稱 說明
pool_size 過濾器的大小,一般取(2,2)或(3,3)
strides 過濾器的移動步長,取2使得輸出shape縮小一半
padding valid爲1填充,same爲0填充
data_format 字符串,channels_first或channels_last之一

 

4 循環層input

名稱 做用 原型參數
SimpleRNN 全鏈接RNN網絡 SimpleRNN(units, activation=’tanh’, use_bias=True, kernel_initializer=’glorot_uniform’, recurrent_initializer=’orthogonal’, bias_initializer=’zeros’,dropout=0.0, recurrent_dropout=0.0))
GRU 門限循環單元層 GRU(units, activation=’tanh’, recurrent_activation=’hard_sigmoid’, use_bias=True, kernel_initializer=’glorot_uniform’, recurrent_initializer=’orthogonal’, bias_initializer=’zeros’, dropout=0.0, recurrent_dropout=0.0)
LSTM 長短時間記憶模型層 LSTM(units, activation=’tanh’, recurrent_activation=’hard_sigmoid’, use_bias=True, kernel_initializer=’glorot_uniform’, recurrent_initializer=’orthogonal’, bias_initializer=’zeros’, unit_forget_bias=True, dropout=0.0, recurrent_dropout=0.0)

 

5 嵌入層原型

名稱 做用 原型參數
Embedding 嵌入層將輸入中的整數轉換爲向量,致使原維度+1 EmbeddingEmbedding(input_dim, output_dim, embeddings_initializer=’uniform’, embeddings_regularizer=None, activity_regularizer=None, embeddings_constraint=None, mask_zero=False, input_length=None)

 參數說明:
input_dim: 字典長度,即輸入數據最大下標+1
output_dim:全鏈接嵌入的維度
input_length:當輸入序列的長度固定時,該值爲其長度。若是要在該層後接Flatten層,而後接Dense層,則必須指定該參數,不然Dense層的輸出維度沒法自動推斷。

相關文章
相關標籤/搜索