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)])
- '''