merge_selected_rows
paddle.fluid.layers.merge_selected_rows
( x, name=None ) [源代码]
累加合并 SelectedRows ( x
) 中的重复行,并对行值由小到大重新排序。
参数:
x (Variable) : 类型为 SelectedRows,选中行允许重复。
name (basestring|None) : 输出变量名称。
返回:
- 含有 SelectedRows 的 Variable,选中行不重复。
返回类型:
- Variable(变量)。
代码示例
import paddle.fluid as fluid
import numpy
place = fluid.CPUPlace()
block = fluid.default_main_program().global_block()
var = block.create_var(name="X2",
dtype="float32",
persistable=True,
type=fluid.core.VarDesc.VarType.SELECTED_ROWS)
y = fluid.layers.merge_selected_rows(var)
z = fluid.layers.get_tensor_from_selected_rows(y)
x_rows = [0, 2, 2, 4, 19]
row_numel = 2
np_array = numpy.ones((len(x_rows), row_numel)).astype("float32")
x = fluid.global_scope().var("X2").get_selected_rows()
x.set_rows(x_rows)
x.set_height(20)
x_tensor = x.get_tensor()
x_tensor.set(np_array, place)
exe = fluid.Executor(place=place)
result = exe.run(fluid.default_main_program(), fetch_list=[z])
print("x_rows: ", x_rows)
print("np_array: ", np_array)
print("result: ", result)
'''
Output Values:
('x_rows: ', [0, 2, 2, 4, 19])
('np_array: ', array([[1., 1.],
[1., 1.],
[1., 1.],
[1., 1.],
[1., 1.]], dtype=float32))
('result: ', [array([[1., 1.],
[2., 2.],
[1., 1.],
[1., 1.]], dtype=float32)])
'''