Docs ?
Layers ?
循環(huán)層 Recurrent
RNN
keras.layers.RNN(cell, return_sequences=False, return_state=False, go_backwards=False, stateful=False, unroll=False)
循環(huán)神經網(wǎng)絡層基類炼团。
參數(shù)
-
cell: 一個 RNN 單元實例。RNN 單元是一個具有以下幾項的類:
- 一個
call(input_at_t, states_at_t)
方法, 它返回(output_at_t, states_at_t_plus_1)
震桶。 單元的調用方法也可以采引入可選參數(shù)constants
酵使, 詳見下面的小節(jié)「關于給 RNN 傳遞外部常量的說明」裳涛。 - 一個
state_size
屬性涮较。這可以是單個整數(shù)(單個狀態(tài))左刽, 在這種情況下,它是循環(huán)層狀態(tài)的大腥凶摇(應該與單元輸出的大小相同)仁烹。 這也可以是整數(shù)表示的列表/元組(每個狀態(tài)一個大小)咧虎。 - 一個
output_size
屬性卓缰。 這可以是單個整數(shù)或者是一個 TensorShape, 它表示輸出的尺寸砰诵。出于向后兼容的原因征唬,如果此屬性對于當前單元不可用, 則該值將由state_size
的第一個元素推斷胧砰。
cell
也可能是 RNN 單元實例的列表鳍鸵,在這種情況下,RNN 的單元將堆疊在另一個單元上尉间,實現(xiàn)高效的堆疊 RNN偿乖。 - 一個
return_sequences: 布爾值。是返回輸出序列中的最后一個輸出哲嘲,還是全部序列贪薪。
return_state: 布爾值。除了輸出之外是否返回最后一個狀態(tài)眠副。
go_backwards: 布爾值 (默認 False)画切。 如果為 True,則向后處理輸入序列并返回相反的序列囱怕。
stateful: 布爾值 (默認 False)霍弹。 如果為 True,則批次中索引 i 處的每個樣品的最后狀態(tài)將用作下一批次中索引 i 樣品的初始狀態(tài)娃弓。
unroll: 布爾值 (默認 False)典格。 如果為 True,則網(wǎng)絡將展開台丛,否則將使用符號循環(huán)耍缴。 展開可以加速 RNN,但它往往會占用更多的內存挽霉。 展開只適用于短序列防嗡。
input_dim: 輸入的維度(整數(shù))。 將此層用作模型中的第一層時侠坎,此參數(shù)(或者蚁趁,關鍵字參數(shù)
input_shape
)是必需的。input_length: 輸入序列的長度实胸,在恒定時指定荣德。 如果你要在上游連接
Flatten
和Dense
層闷煤, 則需要此參數(shù)(如果沒有它,無法計算全連接輸出的尺寸)涮瞻。 請注意鲤拿,如果循環(huán)神經網(wǎng)絡層不是模型中的第一層, 則需要在第一層的層級指定輸入長度(例如署咽,通過input_shape
參數(shù))近顷。
輸入尺寸
3D 張量,尺寸為 (batch_size, timesteps, input_dim)
宁否。
輸出尺寸
- 如果
return_state
:返回張量列表窒升。 第一個張量為輸出。剩余的張量為最后的狀態(tài)慕匠, 每個張量的尺寸為(batch_size, units)
饱须。 - 如果
return_sequences
:返回 3D 張量, 尺寸為(batch_size, timesteps, units)
台谊。 - 否則蓉媳,返回尺寸為
(batch_size, units)
的 2D 張量。
Masking
該層支持以可變數(shù)量的時間步對輸入數(shù)據(jù)進行 masking锅铅。 要將 masking 引入你的數(shù)據(jù)酪呻,請使用 Embedding 層, 并將 mask_zero
參數(shù)設置為 True
盐须。
關于在 RNN 中使用「狀態(tài)(statefulness)」的說明
你可以將 RNN 層設置為 stateful
(有狀態(tài)的)玩荠, 這意味著針對一個批次的樣本計算的狀態(tài)將被重新用作下一批樣本的初始狀態(tài)。 這假定在不同連續(xù)批次的樣品之間有一對一的映射贼邓。
為了使狀態(tài)有效:
- 在層構造器中指定
stateful=True
阶冈。 - 為你的模型指定一個固定的批次大小, 如果是順序模型塑径,為你的模型的第一層傳遞一個
batch_input_shape=(...)
參數(shù)眼溶。 - 為你的模型指定一個固定的批次大小, 如果是順序模型晓勇,為你的模型的第一層傳遞一個
batch_input_shape=(...)
。 如果是帶有 1 個或多個 Input 層的函數(shù)式模型灌旧,為你的模型的所有第一層傳遞一個batch_shape=(...)
绑咱。 這是你的輸入的預期尺寸,包括批量維度枢泰。 它應該是整數(shù)的元組描融,例如(32, 10, 100)
。 - 在調用
fit()
是指定shuffle=False
衡蚂。
要重置模型的狀態(tài)窿克,請在特定圖層或整個模型上調用 .reset_states()
骏庸。
關于指定 RNN 初始狀態(tài)的說明
您可以通過使用關鍵字參數(shù) initial_state
調用它們來符號化地指定 RNN 層的初始狀態(tài)。 initial_state
的值應該是表示 RNN 層初始狀態(tài)的張量或張量列表年叮。
您可以通過調用帶有關鍵字參數(shù) states
的 reset_states
方法來數(shù)字化地指定 RNN 層的初始狀態(tài)具被。 states
的值應該是一個代表 RNN 層初始狀態(tài)的 Numpy 數(shù)組或者 Numpy 數(shù)組列表。
關于給 RNN 傳遞外部常量的說明
你可以使用 RNN.__call__
(以及 RNN.call
)的 constants
關鍵字參數(shù)將「外部」常量傳遞給單元只损。 這要求 cell.call
方法接受相同的關鍵字參數(shù) constants
一姿。 這些常數(shù)可用于調節(jié)附加靜態(tài)輸入(不隨時間變化)上的單元轉換,也可用于注意力機制跃惫。
例子
# 首先叮叹,讓我們定義一個 RNN 單元,作為網(wǎng)絡層子類爆存。
class MinimalRNNCell(keras.layers.Layer):
def __init__(self, units, **kwargs):
self.units = units
self.state_size = units
super(MinimalRNNCell, self).__init__(**kwargs)
def build(self, input_shape):
self.kernel = self.add_weight(shape=(input_shape[-1], self.units),
initializer='uniform',
name='kernel')
self.recurrent_kernel = self.add_weight(
shape=(self.units, self.units),
initializer='uniform',
name='recurrent_kernel')
self.built = True
def call(self, inputs, states):
prev_output = states[0]
h = K.dot(inputs, self.kernel)
output = h + K.dot(prev_output, self.recurrent_kernel)
return output, [output]
# 讓我們在 RNN 層使用這個單元:
cell = MinimalRNNCell(32)
x = keras.Input((None, 5))
layer = RNN(cell)
y = layer(x)
# 以下是如何使用單元格構建堆疊的 RNN的方法:
cells = [MinimalRNNCell(32), MinimalRNNCell(64)]
x = keras.Input((None, 5))
layer = RNN(cells)
y = layer(x)
SimpleRNN
keras.layers.SimpleRNN(units, activation='tanh', use_bias=True, kernel_initializer='glorot_uniform', recurrent_initializer='orthogonal', bias_initializer='zeros', kernel_regularizer=None, recurrent_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, recurrent_constraint=None, bias_constraint=None, dropout=0.0, recurrent_dropout=0.0, return_sequences=False, return_state=False, go_backwards=False, stateful=False, unroll=False)
全連接的 RNN蛉顽,其輸出將被反饋到輸入。
參數(shù)
- units: 正整數(shù)先较,輸出空間的維度携冤。
-
activation: 要使用的激活函數(shù) (詳見 activations)。 默認:雙曲正切(
tanh
)拇泣。 如果傳入None
噪叙,則不使用激活函數(shù) (即 線性激活:a(x) = x
)。 - use_bias: 布爾值霉翔,該層是否使用偏置向量睁蕾。
-
kernel_initializer:
kernel
權值矩陣的初始化器, 用于輸入的線性轉換 (詳見 initializers)债朵。 -
recurrent_initializer:
recurrent_kernel
權值矩陣 的初始化器子眶,用于循環(huán)層狀態(tài)的線性轉換 (詳見 initializers)。 - bias_initializer:偏置向量的初始化器 (詳見initializers).
-
kernel_regularizer: 運用到
kernel
權值矩陣的正則化函數(shù) (詳見 regularizer)序芦。 -
recurrent_regularizer: 運用到
recurrent_kernel
權值矩陣的正則化函數(shù) (詳見 regularizer)臭杰。 - bias_regularizer: 運用到偏置向量的正則化函數(shù) (詳見 regularizer)裸诽。
- activity_regularizer: 運用到層輸出(它的激活值)的正則化函數(shù) (詳見 regularizer)疚俱。
-
kernel_constraint: 運用到
kernel
權值矩陣的約束函數(shù) (詳見 constraints)。 -
recurrent_constraint: 運用到
recurrent_kernel
權值矩陣的約束函數(shù) (詳見 constraints)盖奈。 - bias_constraint: 運用到偏置向量的約束函數(shù) (詳見 constraints)宪塔。
- dropout: 在 0 和 1 之間的浮點數(shù)磁奖。 單元的丟棄比例,用于輸入的線性轉換某筐。
- recurrent_dropout: 在 0 和 1 之間的浮點數(shù)比搭。 單元的丟棄比例,用于循環(huán)層狀態(tài)的線性轉換南誊。
- return_sequences: 布爾值身诺。是返回輸出序列中的最后一個輸出蜜托,還是全部序列。
- return_state: 布爾值霉赡。除了輸出之外是否返回最后一個狀態(tài)橄务。
- go_backwards: 布爾值 (默認 False)。 如果為 True同廉,則向后處理輸入序列并返回相反的序列仪糖。
- stateful: 布爾值 (默認 False)。 如果為 True迫肖,則批次中索引 i 處的每個樣品 的最后狀態(tài)將用作下一批次中索引 i 樣品的初始狀態(tài)锅劝。
- unroll: 布爾值 (默認 False)。 如果為 True蟆湖,則網(wǎng)絡將展開故爵,否則將使用符號循環(huán)。 展開可以加速 RNN隅津,但它往往會占用更多的內存诬垂。 展開只適用于短序列。
GRU
keras.layers.GRU(units, activation='tanh', recurrent_activation='hard_sigmoid', use_bias=True, kernel_initializer='glorot_uniform', recurrent_initializer='orthogonal', bias_initializer='zeros', kernel_regularizer=None, recurrent_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, recurrent_constraint=None, bias_constraint=None, dropout=0.0, recurrent_dropout=0.0, implementation=1, return_sequences=False, return_state=False, go_backwards=False, stateful=False, unroll=False, reset_after=False)
門限循環(huán)單元網(wǎng)絡(Gated Recurrent Unit) - Cho et al. 2014.
有兩種變體伦仍。默認的是基于 1406.1078v3 的實現(xiàn)结窘,同時在矩陣乘法之前將復位門應用于隱藏狀態(tài)。 另一種則是基于 1406.1078v1 的實現(xiàn)充蓝,它包括順序倒置的操作隧枫。
第二種變體與 CuDNNGRU(GPU-only) 兼容并且允許在 CPU 上進行推理。 因此它對于 kernel
和 recurrent_kernel
有可分離偏置谓苟。 使用 'reset_after'=True
和 recurrent_activation='sigmoid'
官脓。
參數(shù)
- units: 正整數(shù),輸出空間的維度涝焙。
-
activation: 要使用的激活函數(shù) (詳見 activations)卑笨。 默認:雙曲正切 (
tanh
)。 如果傳入None
仑撞,則不使用激活函數(shù) (即 線性激活:a(x) = x
)赤兴。 -
recurrent_activation: 用于循環(huán)時間步的激活函數(shù) (詳見 activations)。 默認:分段線性近似 sigmoid (
hard_sigmoid
)隧哮。 如果傳入 None桶良,則不使用激活函數(shù) (即 線性激活:a(x) = x
)。 - use_bias: 布爾值近迁,該層是否使用偏置向量。
-
kernel_initializer:
kernel
權值矩陣的初始化器簸州, 用于輸入的線性轉換 (詳見 initializers)鉴竭。 -
recurrent_initializer:
recurrent_kernel
權值矩陣 的初始化器歧譬,用于循環(huán)層狀態(tài)的線性轉換 (詳見 initializers)。 - bias_initializer:偏置向量的初始化器 (詳見initializers).
-
kernel_regularizer: 運用到
kernel
權值矩陣的正則化函數(shù) (詳見 regularizer)搏存。 -
recurrent_regularizer: 運用到
recurrent_kernel
權值矩陣的正則化函數(shù) (詳見 regularizer)瑰步。 - bias_regularizer: 運用到偏置向量的正則化函數(shù) (詳見 regularizer)。
- activity_regularizer: 運用到層輸出(它的激活值)的正則化函數(shù) (詳見 regularizer)璧眠。
-
kernel_constraint: 運用到
kernel
權值矩陣的約束函數(shù) (詳見 constraints)缩焦。 -
recurrent_constraint: 運用到
recurrent_kernel
權值矩陣的約束函數(shù) (詳見 constraints)。 - bias_constraint: 運用到偏置向量的約束函數(shù) (詳見 constraints)责静。
- dropout: 在 0 和 1 之間的浮點數(shù)袁滥。 單元的丟棄比例,用于輸入的線性轉換灾螃。
- recurrent_dropout: 在 0 和 1 之間的浮點數(shù)题翻。 單元的丟棄比例,用于循環(huán)層狀態(tài)的線性轉換腰鬼。
- implementation: 實現(xiàn)模式嵌赠,1 或 2。 模式 1 將把它的操作結構化為更多的小的點積和加法操作熄赡, 而模式 2 將把它們分批到更少姜挺,更大的操作中。 這些模式在不同的硬件和不同的應用中具有不同的性能配置文件彼硫。
- return_sequences: 布爾值炊豪。是返回輸出序列中的最后一個輸出,還是全部序列乌助。
- return_state: 布爾值溜在。除了輸出之外是否返回最后一個狀態(tài)。
- go_backwards: 布爾值 (默認 False)他托。 如果為 True掖肋,則向后處理輸入序列并返回相反的序列。
- stateful: 布爾值 (默認 False)赏参。 如果為 True志笼,則批次中索引 i 處的每個樣品的最后狀態(tài) 將用作下一批次中索引 i 樣品的初始狀態(tài)。
- unroll: 布爾值 (默認 False)把篓。 如果為 True纫溃,則網(wǎng)絡將展開,否則將使用符號循環(huán)韧掩。 展開可以加速 RNN紊浩,但它往往會占用更多的內存。 展開只適用于短序列。
- reset_after:
- GRU 公約 (是否在矩陣乘法之前或者之后使用重置門)坊谁。 False =「之前」(默認)费彼,Ture =「之后」( CuDNN 兼容)。
參考文獻
- Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation
- On the Properties of Neural Machine Translation: Encoder-Decoder Approaches
- Empirical Evaluation of Gated Recurrent Neural Networks on Sequence Modeling
- A Theoretically Grounded Application of Dropout in Recurrent Neural Networks
LSTM
keras.layers.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, kernel_regularizer=None, recurrent_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, recurrent_constraint=None, bias_constraint=None, dropout=0.0, recurrent_dropout=0.0, implementation=1, return_sequences=False, return_state=False, go_backwards=False, stateful=False, unroll=False)
長短期記憶網(wǎng)絡層(Long Short-Term Memory) - Hochreiter 1997.
參數(shù)
- units: 正整數(shù)口芍,輸出空間的維度箍铲。
-
activation: 要使用的激活函數(shù) (詳見 activations)。 如果傳入
None
鬓椭,則不使用激活函數(shù) (即 線性激活:a(x) = x
)颠猴。 -
recurrent_activation: 用于循環(huán)時間步的激活函數(shù) (詳見 activations)。 默認:分段線性近似 sigmoid (
hard_sigmoid
)小染。 如果傳入None
翘瓮,則不使用激活函數(shù) (即 線性激活:a(x) = x
)。 - use_bias: 布爾值氧映,該層是否使用偏置向量春畔。
-
kernel_initializer:
kernel
權值矩陣的初始化器, 用于輸入的線性轉換 (詳見 initializers)岛都。 -
recurrent_initializer:
recurrent_kernel
權值矩陣 的初始化器律姨,用于循環(huán)層狀態(tài)的線性轉換 (詳見 initializers)。 - bias_initializer:偏置向量的初始化器 (詳見initializers).
-
unit_forget_bias: 布爾值臼疫。 如果為 True择份,初始化時,將忘記門的偏置加 1烫堤。 將其設置為 True 同時還會強制
bias_initializer="zeros"
荣赶。 這個建議來自 Jozefowicz et al.。 -
kernel_regularizer: 運用到
kernel
權值矩陣的正則化函數(shù) (詳見 regularizer)鸽斟。 -
recurrent_regularizer: 運用到
recurrent_kernel
權值矩陣的正則化函數(shù) (詳見 regularizer)拔创。 - bias_regularizer: 運用到偏置向量的正則化函數(shù) (詳見 regularizer)。
- activity_regularizer: 運用到層輸出(它的激活值)的正則化函數(shù) (詳見 regularizer)富蓄。
-
kernel_constraint: 運用到
kernel
權值矩陣的約束函數(shù) (詳見 constraints)剩燥。 -
recurrent_constraint: 運用到
recurrent_kernel
權值矩陣的約束函數(shù) (詳見 constraints)。 - bias_constraint: 運用到偏置向量的約束函數(shù) (詳見 constraints)立倍。
- dropout: 在 0 和 1 之間的浮點數(shù)灭红。 單元的丟棄比例,用于輸入的線性轉換口注。
- recurrent_dropout: 在 0 和 1 之間的浮點數(shù)变擒。 單元的丟棄比例,用于循環(huán)層狀態(tài)的線性轉換寝志。
- implementation: 實現(xiàn)模式娇斑,1 或 2策添。 模式 1 將把它的操作結構化為更多的小的點積和加法操作, 而模式 2 將把它們分批到更少毫缆,更大的操作中舰攒。 這些模式在不同的硬件和不同的應用中具有不同的性能配置文件。
- return_sequences: 布爾值悔醋。是返回輸出序列中的最后一個輸出,還是全部序列兽叮。
- return_state: 布爾值芬骄。除了輸出之外是否返回最后一個狀態(tài)。
- go_backwards: 布爾值 (默認 False)鹦聪。 如果為 True账阻,則向后處理輸入序列并返回相反的序列。
- stateful: 布爾值 (默認 False)泽本。 如果為 True淘太,則批次中索引 i 處的每個樣品的最后狀態(tài) 將用作下一批次中索引 i 樣品的初始狀態(tài)。
- unroll: 布爾值 (默認 False)规丽。 如果為 True蒲牧,則網(wǎng)絡將展開,否則將使用符號循環(huán)赌莺。 展開可以加速 RNN冰抢,但它往往會占用更多的內存。 展開只適用于短序列艘狭。
參考文獻
- Long short-term memory (original 1997 paper)
- Learning to forget: Continual prediction with LSTM
- Supervised sequence labeling with recurrent neural networks
- A Theoretically Grounded Application of Dropout in Recurrent Neural Networks
ConvLSTM2D
keras.layers.ConvLSTM2D(filters, kernel_size, strides=(1, 1), padding='valid', data_format=None, dilation_rate=(1, 1), activation='tanh', recurrent_activation='hard_sigmoid', use_bias=True, kernel_initializer='glorot_uniform', recurrent_initializer='orthogonal', bias_initializer='zeros', unit_forget_bias=True, kernel_regularizer=None, recurrent_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, recurrent_constraint=None, bias_constraint=None, return_sequences=False, go_backwards=False, stateful=False, dropout=0.0, recurrent_dropout=0.0)
卷積 LSTM挎扰。
它類似于 LSTM 層,但輸入變換和循環(huán)變換都是卷積的巢音。
參數(shù)
- filters: 整數(shù)遵倦,輸出空間的維度 (即卷積中濾波器的輸出數(shù)量)。
- kernel_size: 一個整數(shù)官撼,或者 n 個整數(shù)表示的元組或列表梧躺, 指明卷積窗口的維度。
-
strides: 一個整數(shù)歧寺,或者 n 個整數(shù)表示的元組或列表燥狰, 指明卷積的步長。 指定任何 stride 值 != 1 與指定
dilation_rate
值 != 1 兩者不兼容斜筐。 -
padding:
"valid"
或"same"
之一 (大小寫敏感)龙致。 -
data_format: 字符串,
channels_last
(默認) 或channels_first
之一顷链。 輸入中維度的順序目代。channels_last
對應輸入尺寸為(batch, time, ..., channels)
,channels_first
對應輸入尺寸為(batch, time, channels, ...)
。 它默認為從 Keras 配置文件~/.keras/keras.json
中 找到的image_data_format
值榛了。 如果你從未設置它在讶,將使用"channels_last"
。 -
dilation_rate: 一個整數(shù)霜大,或 n 個整數(shù)的元組/列表构哺,指定用于膨脹卷積的膨脹率。 目前战坤,指定任何
dilation_rate
值 != 1 與指定 stride 值 != 1 兩者不兼容曙强。 -
activation: 要使用的激活函數(shù) (詳見 activations)。 如果傳入 None途茫,則不使用激活函數(shù) (即 線性激活:
a(x) = x
)碟嘴。 - recurrent_activation: 用于循環(huán)時間步的激活函數(shù) (詳見 activations)。
- use_bias: 布爾值囊卜,該層是否使用偏置向量娜扇。
-
kernel_initializer:
kernel
權值矩陣的初始化器, 用于輸入的線性轉換 (詳見 initializers)栅组。 -
recurrent_initializer:
recurrent_kernel
權值矩陣 的初始化器雀瓢,用于循環(huán)層狀態(tài)的線性轉換 (詳見 initializers)。 - bias_initializer:偏置向量的初始化器 (詳見initializers).
-
unit_forget_bias: 布爾值玉掸。 如果為 True致燥,初始化時,將忘記門的偏置加 1排截。 將其設置為 True 同時還會強制
bias_initializer="zeros"
嫌蚤。 這個建議來自 Jozefowicz et al.。 -
kernel_regularizer: 運用到
kernel
權值矩陣的正則化函數(shù) (詳見 regularizer)断傲。 -
recurrent_regularizer: 運用到
recurrent_kernel
權值矩陣的正則化函數(shù) (詳見 regularizer)脱吱。 - bias_regularizer: 運用到偏置向量的正則化函數(shù) (詳見 regularizer)。
- activity_regularizer: 運用到層輸出(它的激活值)的正則化函數(shù) (詳見 regularizer)认罩。
-
kernel_constraint: 運用到
kernel
權值矩陣的約束函數(shù) (詳見 constraints)箱蝠。 -
recurrent_constraint: 運用到
recurrent_kernel
權值矩陣的約束函數(shù) (詳見 constraints)。 - bias_constraint: 運用到偏置向量的約束函數(shù) (詳見 constraints)垦垂。
- return_sequences: 布爾值宦搬。是返回輸出序列中的最后一個輸出,還是全部序列劫拗。
- go_backwards: 布爾值 (默認 False)间校。 如果為 True,則向后處理輸入序列并返回相反的序列页慷。
- stateful: 布爾值 (默認 False)憔足。 如果為 True胁附,則批次中索引 i 處的每個樣品的最后狀態(tài) 將用作下一批次中索引 i 樣品的初始狀態(tài)。
- dropout: 在 0 和 1 之間的浮點數(shù)滓彰。 單元的丟棄比例控妻,用于輸入的線性轉換。
- recurrent_dropout: 在 0 和 1 之間的浮點數(shù)揭绑。 單元的丟棄比例弓候,用于循環(huán)層狀態(tài)的線性轉換。
輸入尺寸
- 如果 data_format='channels_first'他匪, 輸入 5D 張量弓叛,尺寸為:
(samples,time, channels, rows, cols)
。 - 如果 data_format='channels_last'诚纸, 輸入 5D 張量,尺寸為:
(samples,time, rows, cols, channels)
陈惰。
輸出尺寸
- 如果
return_sequences
畦徘,- 如果 data_format='channels_first',返回 5D 張量抬闯,尺寸為:
(samples, time, filters, output_row, output_col)
井辆。 - 如果 data_format='channels_last',返回 5D 張量溶握,尺寸為:
(samples, time, output_row, output_col, filters)
杯缺。
- 如果 data_format='channels_first',返回 5D 張量抬闯,尺寸為:
- 否則,
- 如果 data_format ='channels_first'睡榆,返回 4D 張量萍肆,尺寸為:
(samples, filters, output_row, output_col)
。 - 如果 data_format='channels_last'胀屿,返回 4D 張量塘揣,尺寸為:
(samples, output_row, output_col, filters)
。
- 如果 data_format ='channels_first'睡榆,返回 4D 張量萍肆,尺寸為:
o_row 和 o_col 取決于 filter 和 padding 的尺寸宿崭。
異常
- ValueError: 無效的構造參數(shù)亲铡。
參考文獻
- Convolutional LSTM Network: A Machine Learning Approach for Precipitation Nowcasting。 當前的實現(xiàn)不包括單元輸出的反饋回路葡兑。
SimpleRNNCell
keras.layers.SimpleRNNCell(units, activation='tanh', use_bias=True, kernel_initializer='glorot_uniform', recurrent_initializer='orthogonal', bias_initializer='zeros', kernel_regularizer=None, recurrent_regularizer=None, bias_regularizer=None, kernel_constraint=None, recurrent_constraint=None, bias_constraint=None, dropout=0.0, recurrent_dropout=0.0)
SimpleRNN 的單元類奖蔓。
參數(shù)
- units: 正整數(shù),輸出空間的維度讹堤。
-
activation: 要使用的激活函數(shù) (詳見 activations)吆鹤。 默認:雙曲正切 (
tanh
)。 如果傳入None
洲守,則不使用激活函數(shù) (即 線性激活:a(x) = x
)檀头。 - use_bias: 布爾值轰异,該層是否使用偏置向量。
-
kernel_initializer:
kernel
權值矩陣的初始化器暑始, 用于輸入的線性轉換 (詳見 initializers)搭独。 -
recurrent_initializer:
recurrent_kernel
權值矩陣 的初始化器,用于循環(huán)層狀態(tài)的線性轉換 (詳見 initializers)廊镜。 - bias_initializer:偏置向量的初始化器 (詳見initializers).
-
kernel_regularizer: 運用到
kernel
權值矩陣的正則化函數(shù) (詳見 regularizer)牙肝。 -
recurrent_regularizer: 運用到
recurrent_kernel
權值矩陣的正則化函數(shù) (詳見 regularizer)。 - bias_regularizer: 運用到偏置向量的正則化函數(shù) (詳見 regularizer)嗤朴。
-
kernel_constraint: 運用到
kernel
權值矩陣的約束函數(shù) (詳見 constraints)配椭。 -
recurrent_constraint: 運用到
recurrent_kernel
權值矩陣的約束函數(shù) (詳見 constraints)。 - bias_constraint: 運用到偏置向量的約束函數(shù) (詳見 constraints)雹姊。
- dropout: 在 0 和 1 之間的浮點數(shù)股缸。 單元的丟棄比例,用于輸入的線性轉換吱雏。
- recurrent_dropout: 在 0 和 1 之間的浮點數(shù)敦姻。 單元的丟棄比例,用于循環(huán)層狀態(tài)的線性轉換歧杏。
GRUCell
keras.layers.GRUCell(units, activation='tanh', recurrent_activation='hard_sigmoid', use_bias=True, kernel_initializer='glorot_uniform', recurrent_initializer='orthogonal', bias_initializer='zeros', kernel_regularizer=None, recurrent_regularizer=None, bias_regularizer=None, kernel_constraint=None, recurrent_constraint=None, bias_constraint=None, dropout=0.0, recurrent_dropout=0.0, implementation=1, reset_after=False)
GRU 層的單元類镰惦。
參數(shù)
- units: 正整數(shù),輸出空間的維度犬绒。
-
activation: 要使用的激活函數(shù) (詳見 activations)旺入。 默認:雙曲正切 (
tanh
)。 如果傳入None
凯力,則不使用激活函數(shù) (即 線性激活:a(x) = x
)茵瘾。 -
recurrent_activation: 用于循環(huán)時間步的激活函數(shù) (詳見 activations)。 默認:分段線性近似 sigmoid (
hard_sigmoid
)咐鹤。 如果傳入None
龄捡,則不使用激活函數(shù) (即 線性激活:a(x) = x
)。 - use_bias: 布爾值慷暂,該層是否使用偏置向量聘殖。
-
kernel_initializer:
kernel
權值矩陣的初始化器, 用于輸入的線性轉換 (詳見 initializers)行瑞。 -
recurrent_initializer:
recurrent_kernel
權值矩陣 的初始化器奸腺,用于循環(huán)層狀態(tài)的線性轉換 (詳見 initializers)。 - bias_initializer:偏置向量的初始化器 (詳見initializers).
-
kernel_regularizer: 運用到
kernel
權值矩陣的正則化函數(shù) (詳見 regularizer)血久。 -
recurrent_regularizer: 運用到
recurrent_kernel
權值矩陣的正則化函數(shù) (詳見 regularizer)突照。 - bias_regularizer: 運用到偏置向量的正則化函數(shù) (詳見 regularizer)。
-
kernel_constraint: 運用到
kernel
權值矩陣的約束函數(shù) (詳見 constraints)氧吐。 -
recurrent_constraint: 運用到
recurrent_kernel
權值矩陣的約束函數(shù) (詳見 constraints)讹蘑。 - bias_constraint: 運用到偏置向量的約束函數(shù) (詳見 constraints)末盔。
- dropout: 在 0 和 1 之間的浮點數(shù)。 單元的丟棄比例座慰,用于輸入的線性轉換陨舱。
- recurrent_dropout: 在 0 和 1 之間的浮點數(shù)。 單元的丟棄比例版仔,用于循環(huán)層狀態(tài)的線性轉換游盲。
- implementation: 實現(xiàn)模式,1 或 2蛮粮。 模式 1 將把它的操作結構化為更多的小的點積和加法操作益缎, 而模式 2 將把它們分批到更少,更大的操作中然想。 這些模式在不同的硬件和不同的應用中具有不同的性能配置文件莺奔。
- reset_after:
- GRU 公約 (是否在矩陣乘法之前或者之后使用重置門)。 False = "before" (默認)变泄,Ture = "after" ( CuDNN 兼容)令哟。
- reset_after: GRU convention (whether to apply reset gate after or before matrix multiplication). False = "before" (default), True = "after" (CuDNN compatible).
LSTMCell
keras.layers.LSTMCell(units, activation='tanh', recurrent_activation='hard_sigmoid', use_bias=True, kernel_initializer='glorot_uniform', recurrent_initializer='orthogonal', bias_initializer='zeros', unit_forget_bias=True, kernel_regularizer=None, recurrent_regularizer=None, bias_regularizer=None, kernel_constraint=None, recurrent_constraint=None, bias_constraint=None, dropout=0.0, recurrent_dropout=0.0, implementation=1)
LSTM 層的單元類。
參數(shù)
- units: 正整數(shù)杖刷,輸出空間的維度。
-
activation: 要使用的激活函數(shù) (詳見 activations)驳癌。 默認:雙曲正切(
tanh
)滑燃。 如果傳入None
,則不使用激活函數(shù) (即 線性激活:a(x) = x
)颓鲜。 -
recurrent_activation: 用于循環(huán)時間步的激活函數(shù) (詳見 activations)表窘。 默認:分段線性近似 sigmoid (
hard_sigmoid
)。 - use_bias: 布爾值甜滨,該層是否使用偏置向量乐严。
-
kernel_initializer:
kernel
權值矩陣的初始化器, 用于輸入的線性轉換 (詳見 initializers)衣摩。 -
recurrent_initializer:
recurrent_kernel
權值矩陣 的初始化器昂验,用于循環(huán)層狀態(tài)的線性轉換 (詳見 initializers)。 - bias_initializer:偏置向量的初始化器 (詳見initializers).
-
unit_forget_bias: 布爾值艾扮。 如果為 True既琴,初始化時,將忘記門的偏置加 1泡嘴。 將其設置為 True 同時還會強制
bias_initializer="zeros"
甫恩。 這個建議來自 Jozefowicz et al.。 -
kernel_regularizer: 運用到
kernel
權值矩陣的正則化函數(shù) (詳見 regularizer)酌予。 -
recurrent_regularizer: 運用到
recurrent_kernel
權值矩陣的正則化函數(shù) (詳見 regularizer)磺箕。 - bias_regularizer: 運用到偏置向量的正則化函數(shù) (詳見 regularizer)奖慌。
-
kernel_constraint: 運用到
kernel
權值矩陣的約束函數(shù) (詳見 constraints)。 -
recurrent_constraint: 運用到
recurrent_kernel
權值矩陣的約束函數(shù) (詳見 constraints)松靡。 - bias_constraint: 運用到偏置向量的約束函數(shù) (詳見 constraints)简僧。
- dropout: 在 0 和 1 之間的浮點數(shù)。 單元的丟棄比例击困,用于輸入的線性轉換涎劈。
- recurrent_dropout: 在 0 和 1 之間的浮點數(shù)。 單元的丟棄比例阅茶,用于循環(huán)層狀態(tài)的線性轉換蛛枚。
- implementation: 實現(xiàn)模式,1 或 2脸哀。 模式 1 將把它的操作結構化為更多的小的點積和加法操作蹦浦, 而模式 2 將把它們分批到更少,更大的操作中撞蜂。 這些模式在不同的硬件和不同的應用中具有不同的性能配置文件盲镶。
CuDNNGRU
keras.layers.CuDNNGRU(units, kernel_initializer='glorot_uniform', recurrent_initializer='orthogonal', bias_initializer='zeros', kernel_regularizer=None, recurrent_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, recurrent_constraint=None, bias_constraint=None, return_sequences=False, return_state=False, stateful=False)
由 CuDNN 支持的快速 GRU 實現(xiàn)。
只能以 TensorFlow 后端運行在 GPU 上蝌诡。
參數(shù)
- units: 正整數(shù)溉贿,輸出空間的維度。
-
kernel_initializer:
kernel
權值矩陣的初始化器浦旱, 用于輸入的線性轉換 (詳見 initializers)颁虐。 -
recurrent_initializer:
recurrent_kernel
權值矩陣 的初始化器僻他,用于循環(huán)層狀態(tài)的線性轉換 (詳見 initializers)。 - bias_initializer:偏置向量的初始化器 (詳見initializers).
-
kernel_regularizer: 運用到
kernel
權值矩陣的正則化函數(shù) (詳見 regularizer)。 -
recurrent_regularizer: 運用到
recurrent_kernel
權值矩陣的正則化函數(shù) (詳見 regularizer)笛园。 - bias_regularizer: 運用到偏置向量的正則化函數(shù) (詳見 regularizer)佃牛。
- activity_regularizer: Regularizer function applied to the output of the layer (its "activation"). (see regularizer).
-
kernel_constraint: 運用到
kernel
權值矩陣的約束函數(shù) (詳見 constraints)兆衅。 -
recurrent_constraint: 運用到
recurrent_kernel
權值矩陣的約束函數(shù) (詳見 constraints)渠旁。 - bias_constraint: 運用到偏置向量的約束函數(shù) (詳見 constraints)。
- return_sequences: 布爾值镰禾。是返回輸出序列中的最后一個輸出皿曲,還是全部序列。
- return_state: 布爾值吴侦。除了輸出之外是否返回最后一個狀態(tài)谷饿。
- stateful: 布爾值 (默認 False)。 如果為 True妈倔,則批次中索引 i 處的每個樣品的最后狀態(tài) 將用作下一批次中索引 i 樣品的初始狀態(tài)博投。
CuDNNLSTM
keras.layers.CuDNNLSTM(units, kernel_initializer='glorot_uniform', recurrent_initializer='orthogonal', bias_initializer='zeros', unit_forget_bias=True, kernel_regularizer=None, recurrent_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, recurrent_constraint=None, bias_constraint=None, return_sequences=False, return_state=False, stateful=False)
由 CuDNN 支持的快速 LSTM 實現(xiàn)。
只能以 TensorFlow 后端運行在 GPU 上盯蝴。
參數(shù)
- units: 正整數(shù)毅哗,輸出空間的維度听怕。
-
kernel_initializer:
kernel
權值矩陣的初始化器, 用于輸入的線性轉換 (詳見 initializers)虑绵。 -
unit_forget_bias: 布爾值尿瞭。 如果為 True,初始化時翅睛,將忘記門的偏置加 1声搁。 將其設置為 True 同時還會強制
bias_initializer="zeros"
。 這個建議來自 Jozefowicz et al.捕发。 -
recurrent_initializer:
recurrent_kernel
權值矩陣 的初始化器疏旨,用于循環(huán)層狀態(tài)的線性轉換 (詳見 initializers)。 - bias_initializer:偏置向量的初始化器 (詳見initializers).
-
kernel_regularizer: 運用到
kernel
權值矩陣的正則化函數(shù) (詳見 regularizer)扎酷。 -
recurrent_regularizer: 運用到
recurrent_kernel
權值矩陣的正則化函數(shù) (詳見 regularizer)檐涝。 - bias_regularizer: 運用到偏置向量的正則化函數(shù) (詳見 regularizer)。
- activity_regularizer: 運用到層輸出(它的激活值)的正則化函數(shù) (詳見 regularizer)法挨。
-
kernel_constraint: 運用到
kernel
權值矩陣的約束函數(shù) (詳見 constraints)谁榜。 -
recurrent_constraint: 運用到
recurrent_kernel
權值矩陣的約束函數(shù) (詳見 constraints)。 - bias_constraint: 運用到偏置向量的約束函數(shù) (詳見 constraints)凡纳。
- return_sequences: 布爾值窃植。是返回輸出序列中的最后一個輸出,還是全部序列荐糜。
- return_state: 布爾值巷怜。除了輸出之外是否返回最后一個狀態(tài)。
- stateful: 布爾值 (默認 False)狞尔。 如果為 True丛版,則批次中索引 i 處的每個樣品的最后狀態(tài) 將用作下一批次中索引 i 樣品的初始狀態(tài)巩掺。