mindspore.nn.TimeDistributed
- class mindspore.nn.TimeDistributed(layer, time_axis, reshape_with_axis=None)[源代码]
时间序列封装层。
TimeDistributed是一个封装层,它允许将一个网络层应用到输入的每个时间切片。 x 至少是三维。执行中有两种情况。当提供 reshape_with_axis 时,选择reshape方法会更高效;否则,将使用沿 time_axis 划分输入的方法,这种方法更通用。比如,在处理BN时无法提供 reshape_with_axis 。
- 参数:
layer (Union[Cell, Primitive]) - 需被封装的Cell或Primitive。
time_axis (int) - 指定各个时间切片上的轴。
reshape_with_axis (int) - 将使用 time_axis 调整该轴。默认值:
None
。
- 输入:
x (Tensor) - shape为 \((N, T, *)\) 的Tensor。其中 \(*\) 表示任意数量的附加维度。
- 输出:
shape为 \((N, T, *)\) 的Tensor。
- 异常:
TypeError - layer不是Cell或Primitive类型。
- 支持平台:
Ascend
GPU
CPU
样例:
>>> import mindspore as ms >>> import numpy as np >>> x = ms.Tensor(np.random.random([32, 10, 3]), ms.float32) >>> dense = ms.nn.Dense(3, 6) >>> net = ms.nn.TimeDistributed(dense, time_axis=1, reshape_with_axis=0) >>> output = net(x) >>> print(output.shape) (32, 10, 6)