Keras官方中文文檔:循環層Recurrent
循環層Recurrent
Recurrent層
keras.layers.recurrent.Recurrent(return_sequences=False, go_backwards=False, stateful=False, unroll=False, implementation=0)
這是循環層的抽象類,請不要在模型中直接應用該層(因為它是抽象類,無法實例化任何對象)。請使用它的子類LSTM
,GRU
或SimpleRNN
。
所有的循環層(LSTM
,GRU
,SimpleRNN
)都繼承本層,因此下面的參數可以在任何循環層中使用。
參數
-
weights:numpy array的list,用以初始化權重。該list形如
[(input_dim, output_dim),(output_dim, output_dim),(output_dim,)]
-
return_sequences:布爾值,默認
False
,控制返回類型。若為True
則返回整個序列,否則僅返回輸出序列的最後一個輸出 -
go_backwards:布爾值,默認為
False
,若為True
,則逆向處理輸入序列並返回逆序後的序列 -
stateful:布爾值,默認為
False
,若為True
,則一個batch中下標為i的樣本的最終狀態將會用作下一個batch同樣下標的樣本的初始狀態。 -
unroll:布爾值,默認為
False
,若為True
,則循環層將被展開,否則就使用符號化的循環。當使用TensorFlow為後端時,循環網絡本來就是展開的,因此該層不做任何事情。層展開會占用更多的內存,但會加速RNN的運算。層展開只適用於短序列。 -
implementation:0,1或2, 若為0,則RNN將以更少但是更大的矩陣乘法實現,因此在CPU上運行更快,但消耗更多的內存。如果設為1,則RNN將以更多但更小的矩陣乘法實現,因此在CPU上運行更慢,在GPU上運行更快,並且消耗更少的內存。如果設為2(僅LSTM和GRU可以設為2),則RNN將把輸入門、遺忘門和輸出門合並為單個矩陣,以獲得更加在GPU上更加高效的實現。註意,RNN dropout必須在所有門上共享,並導致正則效果性能微弱降低。
-
input_dim:輸入維度,當使用該層為模型首層時,應指定該值(或等價的指定input_shape)
-
input_length:當輸入序列的長度固定時,該參數為輸入序列的長度。當需要在該層後連接
Flatten
Dense
層時,需要指定該參數,否則全連接的輸出無法計算出來。註意,如果循環層不是網絡的第一層,你需要在網絡的第一層中指定序列的長度(通過input_shape
指定)。
輸入shape
形如(samples,timesteps,input_dim)的3D張量
輸出shape
如果return_sequences=True
:返回形如(samples,timesteps,output_dim)的3D張量
否則,返回形如(samples,output_dim)的2D張量
例子
# as the first layer in a Sequential model
model = Sequential()
model.add(LSTM(32, input_shape=(10, 64)))
# now model.output_shape == (None, 32)
# note: `None` is the batch dimension.
# the following is identical:
model = Sequential()
model.add(LSTM(32, input_dim=64, input_length=10))
# for subsequent layers, no need to specify the input size:
model.add(LSTM(16))
# to stack recurrent layers, you must use return_sequences=True
# on any recurrent layer that feeds into another recurrent layer.
# note that you only need to specify the input size on the first layer.
model = Sequential()
model.add(LSTM(64, input_dim=64, input_length=10, return_sequences=True))
model.add(LSTM(32, return_sequences=True))
model.add(LSTM(10))
指定RNN初始狀態的註意事項
可以通過設置initial_state
用符號式的方式指定RNN層的初始狀態。即,initial_stat
的值應該為一個tensor或一個tensor列表,代表RNN層的初始狀態。
也可以通過設置reset_states
參數用數值的方法設置RNN的初始狀態,狀態的值應該為numpy數組或numpy數組的列表,代表RNN層的初始狀態。
屏蔽輸入數據(Masking)
循環層支持通過時間步變量對輸入數據進行Masking,如果想將輸入數據的一部分屏蔽掉,請使用Embedding層並將參數mask_zero
設為True
。
使用狀態RNN的註意事項
可以將RNN設置為‘stateful’,意味著由每個batch計算出的狀態都會被重用於初始化下一個batch的初始狀態。狀態RNN假設連續的兩個batch之中,相同下標的元素有一一映射關系。
要啟用狀態RNN,請在實例化層對象時指定參數stateful=True
,並在Sequential模型使用固定大小的batch:通過在模型的第一層傳入batch_size=(...)
和input_shape
來實現。在函數式模型中,對所有的輸入都要指定相同的batch_size
。
如果要將循環層的狀態重置,請調用.reset_states()
,對模型調用將重置模型中所有狀態RNN的狀態。對單個層調用則只重置該層的狀態。
SimpleRNN層
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)
全連接RNN網絡,RNN的輸出會被回饋到輸入
參數
-
units:輸出維度
-
activation:激活函數,為預定義的激活函數名(參考激活函數)
-
use_bias: 布爾值,是否使用偏置項
-
kernel_initializer:權值初始化方法,為預定義初始化方法名的字符串,或用於初始化權重的初始化器。參考initializers
-
recurrent_initializer:循環核的初始化方法,為預定義初始化方法名的字符串,或用於初始化權重的初始化器。參考initializers
-
bias_initializer:權值初始化方法,為預定義初始化方法名的字符串,或用於初始化權重的初始化器。參考initializers
-
kernel_regularizer:施加在權重上的正則項,為Regularizer對象
-
bias_regularizer:施加在偏置向量上的正則項,為Regularizer對象
-
recurrent_regularizer:施加在循環核上的正則項,為Regularizer對象
-
activity_regularizer:施加在輸出上的正則項,為Regularizer對象
-
kernel_constraints:施加在權重上的約束項,為Constraints對象
-
recurrent_constraints:施加在循環核上的約束項,為Constraints對象
-
bias_constraints:施加在偏置上的約束項,為Constraints對象
-
dropout:0~1之間的浮點數,控制輸入線性變換的神經元斷開比例
-
recurrent_dropout:0~1之間的浮點數,控制循環狀態的線性變換的神經元斷開比例
-
其他參數參考Recurrent的說明
參考文獻
- A Theoretically Grounded Application of Dropout in Recurrent Neural Networks
GRU層
keras.layers.recurrent.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)
門限循環單元(詳見參考文獻)
參數
-
units:輸出維度
-
activation:激活函數,為預定義的激活函數名(參考激活函數)
-
use_bias: 布爾值,是否使用偏置項
-
kernel_initializer:權值初始化方法,為預定義初始化方法名的字符串,或用於初始化權重的初始化器。參考initializers
-
recurrent_initializer:循環核的初始化方法,為預定義初始化方法名的字符串,或用於初始化權重的初始化器。參考initializers
-
bias_initializer:權值初始化方法,為預定義初始化方法名的字符串,或用於初始化權重的初始化器。參考initializers
-
kernel_regularizer:施加在權重上的正則項,為Regularizer對象
-
bias_regularizer:施加在偏置向量上的正則項,為Regularizer對象
-
recurrent_regularizer:施加在循環核上的正則項,為Regularizer對象
-
activity_regularizer:施加在輸出上的正則項,為Regularizer對象
-
kernel_constraints:施加在權重上的約束項,為Constraints對象
-
recurrent_constraints:施加在循環核上的約束項,為Constraints對象
-
bias_constraints:施加在偏置上的約束項,為Constraints對象
-
dropout:0~1之間的浮點數,控制輸入線性變換的神經元斷開比例
-
recurrent_dropout:0~1之間的浮點數,控制循環狀態的線性變換的神經元斷開比例
-
其他參數參考Recurrent的說明
參考文獻
-
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.recurrent.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)
Keras長短期記憶模型,關於此算法的詳情,請參考本教程
參數
-
units:輸出維度
-
activation:激活函數,為預定義的激活函數名(參考激活函數)
-
recurrent_activation: 為循環步施加的激活函數(參考激活函數)
-
use_bias: 布爾值,是否使用偏置項
-
kernel_initializer:權值初始化方法,為預定義初始化方法名的字符串,或用於初始化權重的初始化器。參考initializers
-
recurrent_initializer:循環核的初始化方法,為預定義初始化方法名的字符串,或用於初始化權重的初始化器。參考initializers
-
bias_initializer:權值初始化方法,為預定義初始化方法名的字符串,或用於初始化權重的初始化器。參考initializers
-
kernel_regularizer:施加在權重上的正則項,為Regularizer對象
-
bias_regularizer:施加在偏置向量上的正則項,為Regularizer對象
-
recurrent_regularizer:施加在循環核上的正則項,為Regularizer對象
-
activity_regularizer:施加在輸出上的正則項,為Regularizer對象
-
kernel_constraints:施加在權重上的約束項,為Constraints對象
-
recurrent_constraints:施加在循環核上的約束項,為Constraints對象
-
bias_constraints:施加在偏置上的約束項,為Constraints對象
-
dropout:0~1之間的浮點數,控制輸入線性變換的神經元斷開比例
-
recurrent_dropout:0~1之間的浮點數,控制循環狀態的線性變換的神經元斷開比例
-
其他參數參考Recurrent的說明
參考文獻
-
Long short-term memory(original 1997 paper)
-
Learning to forget: Continual prediction with LSTM
-
Supervised sequence labelling 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)
ConvLSTM2D是一個LSTM網絡,但它的輸入變換和循環變換是通過卷積實現的
參數
- filters: 整數,輸出的維度,該參數含義同普通卷積層的filters
- kernel_size: 整數或含有n個整數的tuple/list,指定卷積窗口的大小
- strides: 整數或含有n個整數的tuple/list,指定卷積步長,當不等於1時,無法使用dilation功能,即dialation_rate必須為1.
- padding: "valid" 或 "same" 之一
- data_format: * data_format:字符串,“channels_first”或“channels_last”之一,代表圖像的通道維的位置。該參數是Keras 1.x中的image_dim_ordering,“channels_last”對應原本的“tf”,“channels_first”對應原本的“th”。以128x128的RGB圖像為例,“channels_first”應將數據組織為(3,128,128),而“channels_last”應將數據組織為(128,128,3)。該參數的默認值是
~/.keras/keras.json
中設置的值,若從未設置過,則為“channels_last”。 - dilation_rate: 單個整數或由兩個個整數構成的list/tuple,指定dilated convolution中的膨脹比例。任何不為1的dilation_rate均與任何不為1的strides均不兼容。
- activation: activation:激活函數,為預定義的激活函數名(參考激活函數),或逐元素(element-wise)的Theano函數。如果不指定該參數,將不會使用任何激活函數(即使用線性激活函數:a(x)=x)
- recurrent_activation: 用在recurrent部分的激活函數,為預定義的激活函數名(參考激活函數),或逐元素(element-wise)的Theano函數。如果不指定該參數,將不會使用任何激活函數(即使用線性激活函數:a(x)=x)
- use_bias: Boolean, whether the layer uses a bias vector.
- kernel_initializer:權值初始化方法,為預定義初始化方法名的字符串,或用於初始化權重的初始化器。參考initializers
- recurrent_initializer:循環核的初始化方法,為預定義初始化方法名的字符串,或用於初始化權重的初始化器。參考initializers
- bias_initializer:權值初始化方法,為預定義初始化方法名的字符串,或用於初始化權重的初始化器。參考initializers
- kernel_regularizer:施加在權重上的正則項,為Regularizer對象
- bias_regularizer:施加在偏置向量上的正則項,為Regularizer對象
- recurrent_regularizer:施加在循環核上的正則項,為Regularizer對象
- activity_regularizer:施加在輸出上的正則項,為Regularizer對象
- kernel_constraints:施加在權重上的約束項,為Constraints對象
- recurrent_constraints:施加在循環核上的約束項,為Constraints對象
- bias_constraints:施加在偏置上的約束項,為Constraints對象
- dropout:0~1之間的浮點數,控制輸入線性變換的神經元斷開比例
- recurrent_dropout:0~1之間的浮點數,控制循環狀態的線性變換的神經元斷開比例
- 其他參數參考Recurrent的說明
輸入shape
若data_format=‘channels_first‘, 為形如(samples,time, channels, rows, cols)的5D tensor
若data_format=‘channels_last‘ 為形如(samples,time, rows, cols, channels)的5D tensor
輸出shape
if return_sequences:
if data_format=‘channels_first‘ :5D tensor (samples, time, filters, output_row, output_col)
if data_format=‘channels_last‘ :5D tensor (samples, time, output_row, output_col, filters)
else
if data_format =‘channels_first‘ :4D tensor (samples, filters, output_row, output_col)
if data_format=‘channels_last‘ :4D tensor (samples, output_row, output_col, filters) (o_row和o_col由filter和padding決定)
參考文獻
Convolutional LSTM Network: A Machine Learning Approach for Precipitation Nowcasting
* 當前的實現不包含cell輸出上的反饋循環(feedback loop)
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)
SinpleRNN的Cell類
參數
-
units:輸出維度
-
activation:激活函數,為預定義的激活函數名(參考激活函數)
-
use_bias: 布爾值,是否使用偏置項
-
kernel_initializer:權值初始化方法,為預定義初始化方法名的字符串,或用於初始化權重的初始化器。參考initializers
-
recurrent_initializer:循環核的初始化方法,為預定義初始化方法名的字符串,或用於初始化權重的初始化器。參考initializers
-
bias_initializer:權值初始化方法,為預定義初始化方法名的字符串,或用於初始化權重的初始化器。參考initializers
-
kernel_regularizer:施加在權重上的正則項,為Regularizer對象
-
bias_regularizer:施加在偏置向量上的正則項,為Regularizer對象
-
recurrent_regularizer:施加在循環核上的正則項,為Regularizer對象
-
activity_regularizer:施加在輸出上的正則項,為Regularizer對象
-
kernel_constraints:施加在權重上的約束項,為Constraints對象
-
recurrent_constraints:施加在循環核上的約束項,為Constraints對象
-
bias_constraints:施加在偏置上的約束項,為Constraints對象
-
dropout:0~1之間的浮點數,控制輸入線性變換的神經元斷開比例
-
recurrent_dropout:0~1之間的浮點數,控制循環狀態的線性變換的神經元斷開比例
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)
GRU的Cell類
參數
-
units:輸出維度
-
activation:激活函數,為預定義的激活函數名(參考激活函數)
-
use_bias: 布爾值,是否使用偏置項
-
kernel_initializer:權值初始化方法,為預定義初始化方法名的字符串,或用於初始化權重的初始化器。參考initializers
-
recurrent_initializer:循環核的初始化方法,為預定義初始化方法名的字符串,或用於初始化權重的初始化器。參考initializers
-
bias_initializer:權值初始化方法,為預定義初始化方法名的字符串,或用於初始化權重的初始化器。參考initializers
-
kernel_regularizer:施加在權重上的正則項,為Regularizer對象
-
bias_regularizer:施加在偏置向量上的正則項,為Regularizer對象
-
recurrent_regularizer:施加在循環核上的正則項,為Regularizer對象
-
activity_regularizer:施加在輸出上的正則項,為Regularizer對象
-
kernel_constraints:施加在權重上的約束項,為Constraints對象
-
recurrent_constraints:施加在循環核上的約束項,為Constraints對象
-
bias_constraints:施加在偏置上的約束項,為Constraints對象
-
dropout:0~1之間的浮點數,控制輸入線性變換的神經元斷開比例
-
recurrent_dropout:0~1之間的浮點數,控制循環狀態的線性變換的神經元斷開比例
- 其他參數參考Recurrent的說明
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的Cell類
參數
-
units:輸出維度
-
activation:激活函數,為預定義的激活函數名(參考激活函數)
-
use_bias: 布爾值,是否使用偏置項
-
kernel_initializer:權值初始化方法,為預定義初始化方法名的字符串,或用於初始化權重的初始化器。參考initializers
-
recurrent_initializer:循環核的初始化方法,為預定義初始化方法名的字符串,或用於初始化權重的初始化器。參考initializers
-
bias_initializer:權值初始化方法,為預定義初始化方法名的字符串,或用於初始化權重的初始化器。參考initializers
-
kernel_regularizer:施加在權重上的正則項,為Regularizer對象
-
bias_regularizer:施加在偏置向量上的正則項,為Regularizer對象
-
recurrent_regularizer:施加在循環核上的正則項,為Regularizer對象
-
activity_regularizer:施加在輸出上的正則項,為Regularizer對象
-
kernel_constraints:施加在權重上的約束項,為Constraints對象
-
recurrent_constraints:施加在循環核上的約束項,為Constraints對象
-
bias_constraints:施加在偏置上的約束項,為Constraints對象
-
dropout:0~1之間的浮點數,控制輸入線性變換的神經元斷開比例
-
recurrent_dropout:0~1之間的浮點數,控制循環狀態的線性變換的神經元斷開比例
- 其他參數參考Recurrent的說明
StackedRNNCells層
keras.layers.StackedRNNCells(cells)
這是一個wrapper,用於將多個recurrent cell包裝起來,使其行為類型單個cell。該層用於實現搞笑的stacked RNN
參數
- cells:list,其中每個元素都是一個cell對象
例子
cells = [
keras.layers.LSTMCell(output_dim),
keras.layers.LSTMCell(output_dim),
keras.layers.LSTMCell(output_dim),
]
inputs = keras.Input((timesteps, input_dim))
x = keras.layers.StackedRNNCells(cells)(inputs)
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實現,只能在GPU上運行,只能使用tensoflow為後端
參數
-
units:輸出維度
-
activation:激活函數,為預定義的激活函數名(參考激活函數)
-
use_bias: 布爾值,是否使用偏置項
-
kernel_initializer:權值初始化方法,為預定義初始化方法名的字符串,或用於初始化權重的初始化器。參考initializers
-
recurrent_initializer:循環核的初始化方法,為預定義初始化方法名的字符串,或用於初始化權重的初始化器。參考initializers
-
bias_initializer:權值初始化方法,為預定義初始化方法名的字符串,或用於初始化權重的初始化器。參考initializers
-
kernel_regularizer:施加在權重上的正則項,為Regularizer對象
-
bias_regularizer:施加在偏置向量上的正則項,為Regularizer對象
-
recurrent_regularizer:施加在循環核上的正則項,為Regularizer對象
-
activity_regularizer:施加在輸出上的正則項,為Regularizer對象
-
kernel_constraints:施加在權重上的約束項,為Constraints對象
-
recurrent_constraints:施加在循環核上的約束項,為Constraints對象
-
bias_constraints:施加在偏置上的約束項,為Constraints對象
-
dropout:0~1之間的浮點數,控制輸入線性變換的神經元斷開比例
-
recurrent_dropout:0~1之間的浮點數,控制循環狀態的線性變換的神經元斷開比例
- 其他參數參考Recurrent的說明
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實現,只能在GPU上運行,只能使用tensoflow為後端
參數
-
units:輸出維度
-
activation:激活函數,為預定義的激活函數名(參考激活函數)
-
use_bias: 布爾值,是否使用偏置項
-
kernel_initializer:權值初始化方法,為預定義初始化方法名的字符串,或用於初始化權重的初始化器。參考initializers
-
recurrent_initializer:循環核的初始化方法,為預定義初始化方法名的字符串,或用於初始化權重的初始化器。參考initializers
-
bias_initializer:權值初始化方法,為預定義初始化方法名的字符串,或用於初始化權重的初始化器。參考initializers
-
kernel_regularizer:施加在權重上的正則項,為Regularizer對象
-
bias_regularizer:施加在偏置向量上的正則項,為Regularizer對象
-
recurrent_regularizer:施加在循環核上的正則項,為Regularizer對象
-
activity_regularizer:施加在輸出上的正則項,為Regularizer對象
-
kernel_constraints:施加在權重上的約束項,為Constraints對象
-
recurrent_constraints:施加在循環核上的約束項,為Constraints對象
-
bias_constraints:施加在偏置上的約束項,為Constraints對象
-
dropout:0~1之間的浮點數,控制輸入線性變換的神經元斷開比例
-
recurrent_dropout:0~1之間的浮點數,控制循環狀態的線性變換的神經元斷開比例
- 其他參數參考Recurrent的說明
艾伯特(http://www.aibbt.com/)國內第一家人工智能門戶
Keras官方中文文檔:循環層Recurrent