expand_cn.rst 1.9 KB
Newer Older
H
Hao Wang 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
.. _cn_api_fluid_layers_expand:

expand
-------------------------------

.. py:function:: paddle.fluid.layers.expand(x, expand_times, name=None)

expand运算会按给定的次数对输入各维度进行复制(tile)运算。 您应该通过提供属性 ``expand_times`` 来为每个维度设置次数。 X的秩应该在[1,6]中。请注意, ``expand_times`` 的大小必须与X的秩相同。以下是一个用例:

::

        输入(X) 是一个形状为[2, 3, 1]的三维张量(Tensor):

                [
                   [[1], [2], [3]],
                   [[4], [5], [6]]
                ]

        属性(expand_times):  [1, 2, 2]

        输出(Out) 是一个形状为[2, 6, 2]的三维张量(Tensor):

                [
                    [[1, 1], [2, 2], [3, 3], [1, 1], [2, 2], [3, 3]],
                    [[4, 4], [5, 5], [6, 6], [4, 4], [5, 5], [6, 6]]
                ]

参数:
        - **x** (Variable)- 一个秩在[1, 6]范围中的张量(Tensor).
30
        - **expand_times** (list|tuple|Variable) - 每一个维度要扩展的次数。
H
Hao Wang 已提交
31 32 33 34 35 36 37 38 39 40 41

返回:     expand变量是LoDTensor。expand运算后,输出(Out)的每个维度的大小等于输入(X)的相应维度的大小乘以 ``expand_times`` 给出的相应值。

返回类型:   变量(Variable)

**代码示例**

..  code-block:: python

        import paddle.fluid as fluid

42 43 44 45
        # example 1:
        data_1 = fluid.layers.fill_constant(shape=[2, 3, 1], dtype='int32', value=0)
        expanded_1 = fluid.layers.expand(data_1, expand_times=[1, 2, 2])
        # the shape of expanded_1 is [2, 6, 2].
H
Hao Wang 已提交
46

47 48 49 50 51
        # example 2:
        data_2 = fluid.layers.fill_constant(shape=[12, 14], dtype="int32", value=3)
        expand_times = fluid.layers.fill_constant(shape=[2], dtype="int32", value=4)
        expanded_2 = fluid.layers.expand(data_2, expand_times=expand_times)
        # the shape of expanded_2 is [48, 56].
H
Hao Wang 已提交
52 53 54 55 56 57 58 59