Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
OpenDAS
dgl
Commits
0d0f4436
Commit
0d0f4436
authored
Dec 17, 2018
by
Minjie Wang
Committed by
Da Zheng
Dec 16, 2018
Browse files
[Bugfix] MX utest traversal memory corruption (#312)
* WIP * temp fix mx traversal memory crash bug
parent
3d446301
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
12 additions
and
14 deletions
+12
-14
python/dgl/traversal.py
python/dgl/traversal.py
+8
-8
tests/mxnet/test_propagate.py
tests/mxnet/test_propagate.py
+2
-3
tests/mxnet/test_traversal.py
tests/mxnet/test_traversal.py
+2
-3
No files found.
python/dgl/traversal.py
View file @
0d0f4436
...
@@ -40,8 +40,8 @@ def bfs_nodes_generator(graph, source, reversed=False):
...
@@ -40,8 +40,8 @@ def bfs_nodes_generator(graph, source, reversed=False):
[tensor([0]), tensor([1]), tensor([2, 3]), tensor([4, 5])]
[tensor([0]), tensor([1]), tensor([2, 3]), tensor([4, 5])]
"""
"""
ghandle
=
graph
.
_graph
.
_handle
ghandle
=
graph
.
_graph
.
_handle
source
=
utils
.
toindex
(
source
)
.
todgltensor
()
source
=
utils
.
toindex
(
source
)
ret
=
_CAPI_DGLBFSNodes
(
ghandle
,
source
,
reversed
)
ret
=
_CAPI_DGLBFSNodes
(
ghandle
,
source
.
todgltensor
()
,
reversed
)
all_nodes
=
utils
.
toindex
(
ret
(
0
)).
tousertensor
()
all_nodes
=
utils
.
toindex
(
ret
(
0
)).
tousertensor
()
# TODO(minjie): how to support directly creating python list
# TODO(minjie): how to support directly creating python list
sections
=
utils
.
toindex
(
ret
(
1
)).
tonumpy
().
tolist
()
sections
=
utils
.
toindex
(
ret
(
1
)).
tonumpy
().
tolist
()
...
@@ -80,8 +80,8 @@ def bfs_edges_generator(graph, source, reversed=False):
...
@@ -80,8 +80,8 @@ def bfs_edges_generator(graph, source, reversed=False):
[tensor([0]), tensor([1, 2]), tensor([4, 5])]
[tensor([0]), tensor([1, 2]), tensor([4, 5])]
"""
"""
ghandle
=
graph
.
_graph
.
_handle
ghandle
=
graph
.
_graph
.
_handle
source
=
utils
.
toindex
(
source
)
.
todgltensor
()
source
=
utils
.
toindex
(
source
)
ret
=
_CAPI_DGLBFSEdges
(
ghandle
,
source
,
reversed
)
ret
=
_CAPI_DGLBFSEdges
(
ghandle
,
source
.
todgltensor
()
,
reversed
)
all_edges
=
utils
.
toindex
(
ret
(
0
)).
tousertensor
()
all_edges
=
utils
.
toindex
(
ret
(
0
)).
tousertensor
()
# TODO(minjie): how to support directly creating python list
# TODO(minjie): how to support directly creating python list
sections
=
utils
.
toindex
(
ret
(
1
)).
tonumpy
().
tolist
()
sections
=
utils
.
toindex
(
ret
(
1
)).
tonumpy
().
tolist
()
...
@@ -161,8 +161,8 @@ def dfs_edges_generator(graph, source, reversed=False):
...
@@ -161,8 +161,8 @@ def dfs_edges_generator(graph, source, reversed=False):
[tensor([0]), tensor([1]), tensor([3]), tensor([5]), tensor([4])]
[tensor([0]), tensor([1]), tensor([3]), tensor([5]), tensor([4])]
"""
"""
ghandle
=
graph
.
_graph
.
_handle
ghandle
=
graph
.
_graph
.
_handle
source
=
utils
.
toindex
(
source
)
.
todgltensor
()
source
=
utils
.
toindex
(
source
)
ret
=
_CAPI_DGLDFSEdges
(
ghandle
,
source
,
reversed
)
ret
=
_CAPI_DGLDFSEdges
(
ghandle
,
source
.
todgltensor
()
,
reversed
)
all_edges
=
utils
.
toindex
(
ret
(
0
)).
tousertensor
()
all_edges
=
utils
.
toindex
(
ret
(
0
)).
tousertensor
()
# TODO(minjie): how to support directly creating python list
# TODO(minjie): how to support directly creating python list
sections
=
utils
.
toindex
(
ret
(
1
)).
tonumpy
().
tolist
()
sections
=
utils
.
toindex
(
ret
(
1
)).
tonumpy
().
tolist
()
...
@@ -232,10 +232,10 @@ def dfs_labeled_edges_generator(
...
@@ -232,10 +232,10 @@ def dfs_labeled_edges_generator(
(tensor([0]), tensor([0]), tensor([0]), tensor([0]), tensor([0]), tensor([2]))
(tensor([0]), tensor([0]), tensor([0]), tensor([0]), tensor([0]), tensor([2]))
"""
"""
ghandle
=
graph
.
_graph
.
_handle
ghandle
=
graph
.
_graph
.
_handle
source
=
utils
.
toindex
(
source
)
.
todgltensor
()
source
=
utils
.
toindex
(
source
)
ret
=
_CAPI_DGLDFSLabeledEdges
(
ret
=
_CAPI_DGLDFSLabeledEdges
(
ghandle
,
ghandle
,
source
,
source
.
todgltensor
()
,
reversed
,
reversed
,
has_reverse_edge
,
has_reverse_edge
,
has_nontree_edge
,
has_nontree_edge
,
...
...
tests/mxnet/test_propagate.py
View file @
0d0f4436
...
@@ -23,7 +23,7 @@ def test_prop_nodes_bfs():
...
@@ -23,7 +23,7 @@ def test_prop_nodes_bfs():
assert
np
.
allclose
(
g
.
ndata
[
'x'
].
asnumpy
(),
assert
np
.
allclose
(
g
.
ndata
[
'x'
].
asnumpy
(),
np
.
array
([[
2.
,
2.
],
[
4.
,
4.
],
[
6.
,
6.
],
[
8.
,
8.
],
[
9.
,
9.
]]))
np
.
array
([[
2.
,
2.
],
[
4.
,
4.
],
[
6.
,
6.
],
[
8.
,
8.
],
[
9.
,
9.
]]))
def
_
test_prop_edges_dfs
():
def
test_prop_edges_dfs
():
g
=
dgl
.
DGLGraph
(
nx
.
path_graph
(
5
))
g
=
dgl
.
DGLGraph
(
nx
.
path_graph
(
5
))
g
.
register_message_func
(
mfunc
)
g
.
register_message_func
(
mfunc
)
g
.
register_reduce_func
(
rfunc
)
g
.
register_reduce_func
(
rfunc
)
...
@@ -69,6 +69,5 @@ def test_prop_nodes_topo():
...
@@ -69,6 +69,5 @@ def test_prop_nodes_topo():
if
__name__
==
'__main__'
:
if
__name__
==
'__main__'
:
test_prop_nodes_bfs
()
test_prop_nodes_bfs
()
#TODO(zhengda): the test leads to segfault in MXNet on Ubuntu 16.04.
test_prop_edges_dfs
()
#_test_prop_edges_dfs()
test_prop_nodes_topo
()
test_prop_nodes_topo
()
tests/mxnet/test_traversal.py
View file @
0d0f4436
...
@@ -84,7 +84,7 @@ def test_topological_nodes(n=1000):
...
@@ -84,7 +84,7 @@ def test_topological_nodes(n=1000):
assert
all
(
toset
(
x
)
==
toset
(
y
)
for
x
,
y
in
zip
(
layers_dgl
,
layers_spmv
))
assert
all
(
toset
(
x
)
==
toset
(
y
)
for
x
,
y
in
zip
(
layers_dgl
,
layers_spmv
))
DFS_LABEL_NAMES
=
[
'forward'
,
'reverse'
,
'nontree'
]
DFS_LABEL_NAMES
=
[
'forward'
,
'reverse'
,
'nontree'
]
def
_
test_dfs_labeled_edges
(
n
=
1000
,
example
=
False
):
def
test_dfs_labeled_edges
(
n
=
1000
,
example
=
False
):
dgl_g
=
dgl
.
DGLGraph
()
dgl_g
=
dgl
.
DGLGraph
()
dgl_g
.
add_nodes
(
6
)
dgl_g
.
add_nodes
(
6
)
dgl_g
.
add_edges
([
0
,
1
,
0
,
3
,
3
],
[
1
,
2
,
2
,
4
,
5
])
dgl_g
.
add_edges
([
0
,
1
,
0
,
3
,
3
],
[
1
,
2
,
2
,
4
,
5
])
...
@@ -123,5 +123,4 @@ def _test_dfs_labeled_edges(n=1000, example=False):
...
@@ -123,5 +123,4 @@ def _test_dfs_labeled_edges(n=1000, example=False):
if
__name__
==
'__main__'
:
if
__name__
==
'__main__'
:
test_bfs
()
test_bfs
()
test_topological_nodes
()
test_topological_nodes
()
#TODO(zhengda): the test leads to segfault in MXNet on Ubuntu 16.04.
test_dfs_labeled_edges
()
#_test_dfs_labeled_edges()
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment