类 LSTM
长短期记忆层-Hochreiter 1997。
继承自: LSTM
别名:
- 类
tf.compat.v2.keras.layers.LSTM
在指南中使用:
在教程中使用:
基于可用的运行时硬件和约束,该层将选择不同的实现(基于cuDNN或纯TensorFlow)以最大化性能。如果有GPU,并且该层的所有参数都满足CuDNN内核的要求(请参阅下文以了解详细信息),则该层将使用快速cuDNN实现。
使用cuDNN实现的要求是:
activation
=='tanh'recurrent_activation
=='Sigmoid'recurrent_dropout
== 0unroll
是错误的use_bias
是真的- 输入不会被屏蔽或严格右填充。
参数:
units
:正整数,输出空间的维数。activation
:要使用的激活功能。默认值:双曲正切(tanh
)。如果通过None
,则不会应用任何激活(即“线性”激活:)a(x) = x
。recurrent_activation
:用于循环步骤的激活功能。默认值:S形(sigmoid
)。如果通过None
,则不会应用任何激活(即“线性”激活:)a(x) = x
。use_bias
:布尔值,层是否使用偏置向量。kernel_initializer
:kernel
权重矩阵的初始化程序,用于输入的线性转换。recurrent_initializer
:recurrent_kernel
权重矩阵的初始化程序,用于循环状态的线性转换。bias_initializer
:偏置矢量的初始化器。unit_forget_bias
:布尔值。如果为True,则在初始化时将1加到忘记门的偏置上。将其设置为true也将强制执行bias_initializer="zeros"
。Jozefowicz等人建议使用此方法。。kernel_regularizer
:正则化函数应用于kernel
权重矩阵。recurrent_regularizer
:正则化函数应用于recurrent_kernel
权重矩阵。bias_regularizer
:正则化函数应用于偏差向量。activity_regularizer
:正则化函数应用于图层的输出(其“激活”)。kernel_constraint
:约束函数应用于kernel
权重矩阵。recurrent_constraint
:约束函数应用于recurrent_kernel
权重矩阵。bias_constraint
:约束函数应用于偏差向量。dropout
:在0到1之间浮动。为输入的线性转换而下降的单位的分数。recurrent_dropout
:在0到1之间浮动。用于递归状态线性转换的单位小数。implementation
:实施模式1或2。模式1将其操作构造为大量较小的点乘积和加法运算,而模式2会将其批量处理为较少的较大操作。这些模式在不同的硬件和不同的应用程序上将具有不同的性能配置文件。return_sequences
:布尔值。是否返回最后的输出。在输出序列或完整序列中。return_state
:布尔值。除输出外,是否返回最后一个状态。go_backwards
:布尔值(默认为False)。如果为True,则向后处理输入序列,并返回相反的序列。stateful
:布尔值(默认为False)。如果为True,则将批次中索引i的每个样本的最后状态用作下一个批次中索引i的样本的初始状态。unroll
:布尔值(默认为False)。如果为True,则将展开网络,否则将使用符号循环。展开可以加快RNN的速度,尽管它往往会占用更多的内存。展开仅适用于短序列。
调用参数:
inputs
:3D张量。mask
:形状的二进制张量,(samples, timesteps)
指示是否应屏蔽给定的时间步长。training
:Python布尔值,指示该层是应在训练模式下还是在推理模式下运行。该参数在调用时传递给单元格。仅在使用dropout
或 时才有意义recurrent_dropout
。initial_state
:要传递到单元格的第一个调用的初始状态张量的列表。
__init__
__init__(
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,
implementation=2,
return_sequences=False,
return_state=False,
go_backwards=False,
stateful=False,
time_major=False,
unroll=False,
**kwargs
)
物产
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
方法
get_dropout_mask_for_cell
get_dropout_mask_for_cell(
inputs,
training,
count=1
)
获取RNN单元格输入的滤除掩码。
如果没有任何已缓存的掩码,它将根据上下文创建掩码。如果生成了新的掩码,它将更新单元中的缓存。
精氨酸:
inputs
:输入张量,其形状将用于生成滤除蒙版。training
:布尔型张量,无论是在训练模式下,还是在非训练模式下都将被忽略。count
:int,将生成多少个滤除掩码。对于内部砝码融合在一起的电池很有用。
返回值:
模板张量列表,基于上下文生成或缓存的模板。
get_initial_state
get_initial_state(inputs)
get_recurrent_dropout_mask_for_cell
get_recurrent_dropout_mask_for_cell(
inputs,
training,
count=1
)
获取RNN单元的递归退出掩码。
如果没有任何已缓存的掩码,它将根据上下文创建掩码。如果生成了新的掩码,它将更新单元中的缓存。
精氨酸:
inputs
:输入张量,其形状将用于生成滤除蒙版。training
:布尔型张量,无论是在训练模式下,还是在非训练模式下都将被忽略。count
:int,将生成多少个滤除掩码。对于内部砝码融合在一起的电池很有用。
返回值:
模板张量列表,基于上下文生成或缓存的模板。
reset_dropout_mask
reset_dropout_mask()
重置缓存的辍学掩码(如果有)。
这对于RNN层在其call()方法中调用它很重要,以便在调用cell.call()之前清除缓存的掩码。掩码应在同一批次的整个时间步中进行缓存,但不应在批次之间进行缓存。否则,它将对批处理中的某些数据索引造成不合理的偏差。
reset_recurrent_dropout_mask
reset_recurrent_dropout_mask()
如果有的话,重置缓存的经常性丢失掩码。
这对于RNN层在其call()方法中调用它很重要,以便在调用cell.call()之前清除缓存的掩码。掩码应在同一批次的整个时间步中进行缓存,但不应在批次之间进行缓存。否则,它将对批处理中的某些数据索引造成不合理的偏差。
reset_states
reset_states(states=None)
布施恩德可便相知重
微信扫一扫打赏
支付宝扫一扫打赏