当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python mxnet.contrib.ndarray.dgl_csr_neighbor_non_uniform_sample用法及代码示例


用法:

mxnet.contrib.ndarray.dgl_csr_neighbor_non_uniform_sample(*seed_arrays, **kwargs)

参数

  • csr_matrix(NDArray) - csr 矩阵
  • probability(NDArray) - 概率向量
  • seed_arrays(NDArray[]) - 种子顶点
  • num_hops(long, optional, default=1) - 跳数。
  • num_neighbor(long, optional, default=2) - 邻居数。
  • max_num_vertices(long, optional, default=100) - 最大顶点数。
  • out(NDArray, optional) - 输出 NDArray 来保存结果。

返回

out- 此函数的输出。

返回类型

NDArray 或 NDArray 列表

此运算符通过非均匀概率从 csr 图中采样 sub-graph。该运算符专为 DGL 设计。

算子输出四组 NDArrays 来表示采样结果(每组 NDArrays 的数量与种子 NDArrays 的数量相同):1)一组包含采样顶点的 1D NDArrays,2)一组 CSRNDArrays 表示采样的边,3) 一组 1D NDArrays,具有采样顶点的概率,4) 一组 1D NDArrays,指示采样顶点的层。第一组 1D NDArray 的长度为 max_num_vertices+1。 NDArray 中的最后一个元素表示子图中顶点的实际数量。第三组和第四组NDArray的长度为max_num_vertices,有效顶点数与第一组相同。

示例

shape = (5, 5)
prob = mx.nd.array([0.9, 0.8, 0.2, 0.4, 0.1], dtype=np.float32)
data_np = np.array([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20], dtype=np.int64)
indices_np = np.array([1,2,3,4,0,2,3,4,0,1,3,4,0,1,2,4,0,1,2,3], dtype=np.int64)
indptr_np = np.array([0,4,8,12,16,20], dtype=np.int64)
a = mx.nd.sparse.csr_matrix((data_np, indices_np, indptr_np), shape=shape)
seed = mx.nd.array([0,1,2,3,4], dtype=np.int64)
out = mx.nd.contrib.dgl_csr_neighbor_non_uniform_sample(a, prob, seed, num_args=3, num_hops=1, num_neighbor=2, max_num_vertices=5)

out[0]
[0 1 2 3 4 5]
<NDArray 6 @cpu(0)>

out[1].asnumpy()
array([[ 0,  1,  2,  0,  0],
       [ 5,  0,  6,  0,  0],
       [ 9, 10,  0,  0,  0],
       [13, 14,  0,  0,  0],
       [ 0, 18, 19,  0,  0]])

out[2]
[0.9 0.8 0.2 0.4 0.1]
<NDArray 5 @cpu(0)>

out[3]
[0 0 0 0 0]
<NDArray 5 @cpu(0)>

相关用法


注:本文由纯净天空筛选整理自apache.org大神的英文原创作品 mxnet.contrib.ndarray.dgl_csr_neighbor_non_uniform_sample。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。