對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) |
名稱 | 說明 |
units | 層中單元數,也是輸出維度 |
activation | 激活函數 |
use_bias | 是否使用偏置 |
kernel_initializer | 權值初始化方法 |
bias_initalizer | 偏置初始化方法 |
kernel_regularizer | 權值規範化方法 |
bias_regularizer | 偏置規範化方法 |
activity_regularizer | |
kernel_constraints | 權值約束 |
bias_constraints | 偏置約束 |
激活函數 | 初始化器 | 正則化器 |
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層的輸出維度沒法自動推斷。