长短期 memory 层 - Hochreiter 1997。
用法
tf.keras.layers.LSTM(
units, activation='tanh', recurrent_activation='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,
return_sequences=False, return_state=False, go_backwards=False, stateful=False,
time_major=False, unroll=False, **kwargs
)参数
-
units正整数,输出空间的维度。 -
activation要使用的激活函数。默认值:双曲正切(tanh)。如果您通过None,则不会应用激活(即 "linear" 激活:a(x) = x)。 -
recurrent_activation用于循环步骤的激活函数。默认值:sigmoid (sigmoid)。如果您通过None,则不会应用激活(即 "linear" 激活:a(x) = x)。 -
use_bias布尔值(默认True),图层是否使用偏置向量。 -
kernel_initializerkernel权重矩阵的初始化器,用于输入的线性变换。默认值:glorot_uniform。 -
recurrent_initializerrecurrent_kernel权重矩阵的初始化器,用于循环状态的线性变换。默认值:orthogonal。 -
bias_initializer偏置向量的初始化器。默认值:zeros。 -
unit_forget_bias布尔值(默认True)。如果为真,则在初始化时将遗忘门的偏差加 1。将其设置为 true 也会强制bias_initializer="zeros".建议在Jozefowicz 等人。. -
kernel_regularizer应用于kernel权重矩阵的正则化函数。默认值:None。 -
recurrent_regularizer应用于recurrent_kernel权重矩阵的正则化函数。默认值:None。 -
bias_regularizer应用于偏置向量的正则化函数。默认值:None。 -
activity_regularizer应用于层输出的正则化函数("activation")。默认值:None。 -
kernel_constraint应用于kernel权重矩阵的约束函数。默认值:None。 -
recurrent_constraint应用于recurrent_kernel权重矩阵的约束函数。默认值:None。 -
bias_constraint应用于偏置向量的约束函数。默认值:None。 -
dropout在 0 和 1 之间浮点数。为输入的线性变换而下降的单位分数。默认值:0。 -
recurrent_dropout在 0 和 1 之间浮点数。用于循环状态的线性变换的单位的分数。默认值:0。 -
return_sequences布尔值。是否返回最后的输出。在输出序列或完整序列中。默认值:False。 -
return_state布尔值。是否返回除了输出之外的最后一个状态。默认值:False。 -
go_backwards布尔值(默认False)。如果为 True,则反向处理输入序列并返回反向序列。 -
stateful布尔值(默认False)。如果为 True,则批次中索引 i 处每个样本的最后状态将用作下一批中索引 i 的样本的初始状态。 -
time_majorinputs和outputs张量的形状格式。如果为 True,输入和输出的形状将是[timesteps, batch, feature],而在 False 情况下,它将是[batch, timesteps, feature]。使用time_major = True效率更高一些,因为它避免了 RNN 计算开始和结束时的转置。但是,大多数 TensorFlow 数据是 batch-major,因此默认情况下,此函数接受输入并以 batch-major 形式发出输出。 -
unroll布尔值(默认False)。如果为 True,则网络将展开,否则将使用符号循环。展开可以speed-up一个RNN,虽然它往往更多memory-intensive。展开仅适用于短序列。
属性
-
activation -
bias_constraint -
bias_initializer -
bias_regularizer -
dropout -
implementation -
kernel_constraint -
kernel_initializer -
kernel_regularizer -
recurrent_activation -
recurrent_constraint -
recurrent_dropout -
recurrent_initializer -
recurrent_regularizer -
states -
unit_forget_bias -
units -
use_bias
有关 RNN API 使用的详细信息,请参阅 Keras RNN API 指南。
根据可用的运行时硬件和约束,该层将选择不同的实现(基于 cuDNN 或 pure-TensorFlow)以最大化性能。如果 GPU 可用并且该层的所有参数都满足 cuDNN 内核的要求(详见下文),则该层将使用快速 cuDNN 实现。
使用 cuDNN 实现的要求是:
activation==tanhrecurrent_activation==sigmoidrecurrent_dropout== 0unroll是Falseuse_bias是True- 输入,如果使用掩码,严格来说是right-padded。
- 在最外层的上下文中启用了即刻执行。
例如:
inputs = tf.random.normal([32, 10, 8])
lstm = tf.keras.layers.LSTM(4)
output = lstm(inputs)
print(output.shape)
(32, 4)
lstm = tf.keras.layers.LSTM(4, return_sequences=True, return_state=True)
whole_seq_output, final_memory_state, final_carry_state = lstm(inputs)
print(whole_seq_output.shape)
(32, 10, 4)
print(final_memory_state.shape)
(32, 4)
print(final_carry_state.shape)
(32, 4)
调用参数:
inputs:带形状的 3D 张量[batch, timesteps, feature].mask: 形状的二进制张量[batch, timesteps]指示是否应屏蔽给定时间步(可选,默认为None)。个人True条目指示应使用相应的时间步长,而Falseentry 表示应该忽略相应的时间步长。training:Python 布尔值,指示层应该在训练模式还是推理模式下运行。此参数在调用时传递给单元格。这仅在以下情况下才相关dropout或者recurrent_dropout使用(可选,默认为None)。initial_state:要传递给单元格第一次调用的初始状态张量列表(可选,默认为None这会导致创建zero-filled 初始状态张量)。
相关用法
- Python tf.keras.layers.LSTMCell用法及代码示例
- Python tf.keras.layers.LayerNormalization用法及代码示例
- Python tf.keras.layers.Lambda用法及代码示例
- Python tf.keras.layers.LocallyConnected1D用法及代码示例
- Python tf.keras.layers.Layer用法及代码示例
- Python tf.keras.layers.Layer.add_loss用法及代码示例
- Python tf.keras.layers.Layer.add_metric用法及代码示例
- Python tf.keras.layers.Layer.set_weights用法及代码示例
- Python tf.keras.layers.LeakyReLU用法及代码示例
- Python tf.keras.layers.Layer.get_weights用法及代码示例
- Python tf.keras.layers.LocallyConnected2D用法及代码示例
- Python tf.keras.layers.InputLayer用法及代码示例
- Python tf.keras.layers.serialize用法及代码示例
- Python tf.keras.layers.Dropout用法及代码示例
- Python tf.keras.layers.maximum用法及代码示例
- Python tf.keras.layers.Conv2D用法及代码示例
- Python tf.keras.layers.RepeatVector用法及代码示例
- Python tf.keras.layers.Multiply用法及代码示例
- Python tf.keras.layers.Activation用法及代码示例
- Python tf.keras.layers.Conv1D用法及代码示例
注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.keras.layers.LSTM。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
