當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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


用法:

mxnet.ndarray.contrib.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.ndarray.contrib.dgl_csr_neighbor_non_uniform_sample。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。