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


對Keras提供的對各種層的抽象進行相對全面的概括

 

1 基礎常用層

名稱 作用 原型參數
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()參數說明

名稱 說明
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 卷積層

層名 作用 原型
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))

 參數說明:

名稱 說明
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參數說明

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

 

4 循環層

名稱 作用 原型參數
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層的輸出維度無法自動推斷。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM