lod_reset¶
- paddle.fluid.layers.nn. lod_reset ( x, y=None, target_lod=None ) [source]
-
Set LoD of
x
to a new one specified byy
ortarget_lod
. Wheny
provided,y.lod
would be considered as target LoD first, otherwisey.data
would be considered as target LoD. Ify
is not provided, target LoD should be specified bytarget_lod
. If target LoD is specified byy.data
ortarget_lod
, only one level LoD is supported.* Example 1: Given a 1-level LoDTensor x: x.lod = [[ 2, 3, 1 ]] x.data = [[1.0], [2.0], [3.0], [4.0], [5.0], [6.0]] x.dims = [6, 1] target_lod: [4, 2] then we get a 1-level LoDTensor: out.lod = [[4, 2]] out.data = [[1.0], [2.0], [3.0], [4.0], [5.0], [6.0]] out.dims = [6, 1] * Example 2: Given a 1-level LoDTensor x: x.lod = [[2, 3, 1]] x.data = [[1.0], [2.0], [3.0], [4.0], [5.0], [6.0]] x.dims = [6, 1] y is a Tensor: y.data = [[2, 4]] y.dims = [1, 3] then we get a 1-level LoDTensor: out.lod = [[2, 4]] out.data = [[1.0], [2.0], [3.0], [4.0], [5.0], [6.0]] out.dims = [6, 1] * Example 3: Given a 1-level LoDTensor x: x.lod = [[2, 3, 1]] x.data = [[1.0], [2.0], [3.0], [4.0], [5.0], [6.0]] x.dims = [6, 1] y is a 2-level LoDTensor: y.lod = [[2, 2], [2, 2, 1, 1]] y.data = [[1.1], [2.1], [3.1], [4.1], [5.1], [6.1]] y.dims = [6, 1] then we get a 2-level LoDTensor: out.lod = [[2, 2], [2, 2, 1, 1]] out.data = [[1.0], [2.0], [3.0], [4.0], [5.0], [6.0]] out.dims = [6, 1]
- Parameters
-
x (Variable) – Input variable which could be a Tensor or LoDTensor. The data type should be int32, int64, float32 or float64.
y (Variable, optional) – If provided, output’s LoD would be derived from
y
. If y’s lod level>0, the data type can be any type. If y’s lod level=0, the data type should be int32.target_lod (list|tuple, optional) – One level LoD which should be considered as target LoD when
y
not provided.
- Returns
-
Output variable with LoD specified by this layer.
- Return type
-
Variable
- Raises
-
ValueError – If
y
andtarget_lod
are both None.
Examples
import paddle.fluid as fluid x = fluid.layers.data(name='x', shape=[10]) y = fluid.layers.data(name='y', shape=[10, 20], lod_level=2) out = fluid.layers.lod_reset(x=x, y=y)