mindspore_gl.graph.PadCsrEdge
- class mindspore_gl.graph.PadCsrEdge(pad_nodes, reset_with_fill_value=True, length=None, mode=PadMode.AUTO, use_shared_numpy=False)[源代码]
特定的COO边填充算子。填充后COO索引转换到到csr时,indices和indptr的shape变得统一。
警告
PadArray2d将会重新使用内存缓存来加速填充操作。
- 参数:
pad_nodes (int) - 需要填充的图的节点数。
reset_with_fill_value (bool, 可选) - PadArray2d将重用内存缓冲区,如果对填充值没有要求,可以将此值设置为
False
。默认值:True
。length (int, 可选) - 用户特定大小的填充长度。默认值:
None
。mode (PadMode, 可选) - 数组的填充模式,如果
PadMode.CANST
,则此操作将将数组填充到用户特定的大小。如果PadMode.AUTO
,这将根据输入的长度选择填充结果长度。预期长度可以计算为 \(length=2^{\text{ceil}\left ( \log_{2}{input\_length} \right ) }\) 默认值:mindspore_gl.graph.PadMode.AUTO
。use_shared_numpy (bool, 可选) - 是否使用SharedNDArray来加快进程间通信。如果在子进程中执行特征收集和特征填充,则建议使用此方法,并且图特征需要进程间通信。默认值:
False
。
- 输入:
input_array (numpy.array) - 需要填充的输入numpy数组。
- 异常:
ValueError - 当填充模式为
PadMode.CONST
时,应提供填充值大小。
- 支持平台:
Ascend
GPU
样例:
>>> import numpy as np >>> from mindspore_gl.graph import PadCsrEdge, PadMode >>> node_pad = 10 >>> origin_edge_index = np.array([[0, 1, 2, 4], ... [2, 3, 1, 1]]) >>> pad_length = 20 >>> pad_op = PadCsrEdge(node_pad, length=pad_length, mode=PadMode.CONST) >>> res = pad_op(origin_edge_index) >>> print(res) [[0 1 2 4 5 6 7 8 5 6 7 8 5 6 7 8 5 6 7 8] [2 3 1 1 5 6 7 8 6 7 8 5 7 8 5 6 8 5 6 7]]