ConvLSTM2D
classkeras.layers.ConvLSTM2D(
filters,
kernel_size,
strides=1,
padding="valid",
data_format=None,
dilation_rate=1,
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,
seed=None,
return_sequences=False,
return_state=False,
go_backwards=False,
stateful=False,
**kwargs
)
2D 卷积 LSTM.
类似于 LSTM 层,但输入变换和循环变换都是卷积的.
参数:
filters: 整数,输出空间的维度(卷积中滤波器的数量).
kernel_size: 整数或由2个整数组成的元组/列表,指定卷积窗口的大小.
strides: 整数或由2个整数组成的元组/列表,指定卷积的步长.strides > 1
与 dilation_rate > 1
不兼容.
padding: 字符串,"valid"
或 "same"
(不区分大小写).
"valid"
表示不填充."same"
会导致在输入的左右或上下均匀填充,使得输出具有与输入相同的高度/宽度维度.
data_format: 字符串,"channels_last"
或 "channels_first"
.
输入中维度的顺序."channels_last"
对应输入形状 (batch, steps, features)
,而 "channels_first"
对应输入形状 (batch, features, steps)
.默认为 ~/.keras/keras.json
中的 image_data_format
值.如果你从未设置过它,那么它将是 "channels_last"
.
dilation_rate: 整数或由2个整数组成的元组/列表,指定用于扩张卷积的扩张率.
activation: 要使用的激活函数.默认应用双曲正切激活函数 (tanh(x)
).
recurrent_activation: 用于循环步骤的激活函数.
use_bias: 布尔值,层是否使用偏置向量.
kernel_initializer: 用于输入线性变换的 kernel
权重矩阵的初始化器.
recurrent_initializer: 用于循环状态线性变换的 recurrent_kernel
权重矩阵的初始化器.
bias_initializer: 偏置向量的初始化器.
unit_forget_bias: 布尔值.如果为 True
,则在初始化时将忘记门的偏置加1.
与 bias_initializer="zeros"
结合使用.
这在 Jozefowicz et al., 2015 中推荐.
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之间的浮点数.用于循环状态线性变换的丢弃单元的比例.
seed: 用于丢弃的随机种子.
return_sequences: 布尔值.是否返回输出序列中的最后一个输出,或完整序列.默认: False
.
return_state: 布尔值.是否在输出之外返回最后一个状态.默认: False
.
go_backwards: 布尔值(默认: False
).
如果为 True
,则反向处理输入序列并返回反向序列.
stateful: 布尔值(默认 False).如果为 True
,批处理中索引 i 的每个样本的最后一个状态将用作下一个批处理中索引 i 的样本的初始状态.
unroll: 布尔值(默认: False
).
如果为 True
,网络将被展开,否则将使用符号循环.
展开可以加速 RNN,尽管它往往更占用内存.
展开仅适用于短序列.
调用参数:
inputs: 一个5D张量.
mask: 形状为 (samples, timesteps)
的二进制张量,指示是否应屏蔽给定的 timestep.
training: Python 布尔值,指示层应在训练模式还是推理模式下运行.
仅在设置了 dropout
或 recurrent_dropout
时相关.
initial_state: 传递给单元格第一次调用的初始状态张量列表.
输入形状:
data_format='channels_first'
:
形状为 (samples, time, channels, rows, cols)
的5D张量data_format='channels_last'
:
形状为 (samples, time, rows, cols, channels)
的5D张量输出形状:
return_state
: 一个张量列表.第一个张量是输出.
其余张量是最后一个状态,每个4D张量形状为: (samples, filters, new_rows, new_cols)
如果 data_format='channels_first'
或形状为: (samples, new_rows, new_cols, filters)
如果 data_format='channels_last'
.rows
和 cols
值可能由于填充而改变.return_sequences
: 形状为 (samples, timesteps, filters, new_rows, new_cols)
的5D张量,如果 data_format='channels_first'
或形状为: (samples, timesteps, new_rows, new_cols, filters)
如果 data_format='channels_last'
.(samples, filters, new_rows, new_cols)
的4D张量,如果 data_format='channels_first'
或形状为: (samples, new_rows, new_cols, filters)
如果 data_format='channels_last'
.参考文献: