lod_reset¶
- paddle.fluid.layers.nn. lod_reset ( x, y=None, target_lod=None ) [source]
-
Set LoD of
xto a new one specified byyortarget_lod. Whenyprovided,y.lodwould be considered as target LoD first, otherwisey.datawould be considered as target LoD. Ifyis not provided, target LoD should be specified bytarget_lod. If target LoD is specified byy.dataortarget_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
ynot provided.
- Returns
-
Output variable with LoD specified by this layer.
- Return type
-
Variable
- Raises
-
ValueError – If
yandtarget_lodare 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)
