sequence_reshape_cn.rst 1.7 KB
Newer Older
H
Hao Wang 已提交
1 2 3 4 5
.. _cn_api_fluid_layers_sequence_reshape:

sequence_reshape
-------------------------------

L
liuwei1031 已提交
6
:api_attr: 声明式编程模式(静态图)
7

H
Hao Wang 已提交
8 9
.. py:function:: paddle.fluid.layers.sequence_reshape(input, new_dim)

10
**注意:该OP的输入只能是LoDTensor,如果您需要处理的输入是Tensor类型,请使用reshape函数(fluid.layers.** :ref:`cn_api_fluid_layers_reshape` **)。**
H
Hao Wang 已提交
11

12 13 14
**该OP仅支持LoDTensor** ,在指定 ``new_dim`` 参数下,通过序列原始长度、和原始shape计算出新的shape,以输出包含新维度(new_dim)下的LoDTensor。目前仅支持1-level LoDTensor,请确保(原长度*原维数)可以除以新的维数,且每个序列没有余数。

::
H
Hao Wang 已提交
15

16 17 18 19 20 21
    input是一个LoDTensor:
        input.lod  = [[0, 2, 6]]
        input.data = [[1,  2], [3,  4],
                      [5,  6], [7,  8],
                      [9, 10], [11, 12]]
        input.shape = [6, 2]
H
Hao Wang 已提交
22 23 24 25 26 27 28
    设置 new_dim = 4
    输出为LoDTensor:
        out.lod  = [[0, 1, 3]]

        out.data = [[1,  2,  3,  4],
                    [5,  6,  7,  8],
                    [9, 10, 11, 12]]
29 30
        out.shape = [3, 4]

H
Hao Wang 已提交
31 32 33


参数:
34 35
    - **input** (Variable) - 维度为 :math:`[M, K]` 的二维LoDTensor,且仅支持lod_level为1。数据类型为int32,int64,float32或float64。
    - **new_dim** (int)- 指定reshape后的新维度,即对输入LoDTensor重新reshape后的新维度。
H
Hao Wang 已提交
36

37
返回:根据新维度重新reshape后的LoDTensor,数据类型和输入一致。
H
Hao Wang 已提交
38

39
返回类型:Variable
H
Hao Wang 已提交
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56

**代码示例**:

.. code-block:: python

    import paddle.fluid as fluid
    x = fluid.layers.data(name='x', shape=[2, 6], append_batch_size=False, dtype='float32', lod_level=1)
    x_reshaped = fluid.layers.sequence_reshape(input=x, new_dim=4)