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
79f62400
Commit
79f62400
authored
Sep 21, 2018
by
Minjie Wang
Browse files
WIP: batch graphs
parent
4aebfd7b
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
28 additions
and
8 deletions
+28
-8
python/dgl/data/tree.py
python/dgl/data/tree.py
+3
-1
python/dgl/graph.py
python/dgl/graph.py
+25
-7
No files found.
python/dgl/data/tree.py
View file @
79f62400
...
@@ -66,7 +66,9 @@ class SST(object):
...
@@ -66,7 +66,9 @@ class SST(object):
# add root
# add root
g
.
add_node
(
0
,
x
=
SST
.
PAD_WORD
,
y
=
int
(
root
.
label
()))
g
.
add_node
(
0
,
x
=
SST
.
PAD_WORD
,
y
=
int
(
root
.
label
()))
_rec_build
(
0
,
root
)
_rec_build
(
0
,
root
)
return
dgl
.
DGLGraph
(
g
)
ret
=
DGLGraph
()
ret
.
from_networkx
(
g
)
return
ret
def
__getitem__
(
self
,
idx
):
def
__getitem__
(
self
,
idx
):
return
self
.
trees
[
idx
]
return
self
.
trees
[
idx
]
...
...
python/dgl/graph.py
View file @
79f62400
...
@@ -45,9 +45,10 @@ class DGLGraph(object):
...
@@ -45,9 +45,10 @@ class DGLGraph(object):
# frame
# frame
self
.
_node_frame
=
node_frame
if
node_frame
is
not
None
else
FrameRef
()
self
.
_node_frame
=
node_frame
if
node_frame
is
not
None
else
FrameRef
()
self
.
_edge_frame
=
edge_frame
if
edge_frame
is
not
None
else
FrameRef
()
self
.
_edge_frame
=
edge_frame
if
edge_frame
is
not
None
else
FrameRef
()
#
other class members
#
msg graph & frame
self
.
_msg_graph
=
create_graph_index
()
self
.
_msg_graph
=
create_graph_index
()
self
.
_msg_frame
=
FrameRef
()
self
.
_msg_frame
=
FrameRef
()
# registered functions
self
.
_message_func
=
(
None
,
None
)
self
.
_message_func
=
(
None
,
None
)
self
.
_reduce_func
=
(
None
,
None
)
self
.
_reduce_func
=
(
None
,
None
)
self
.
_edge_func
=
(
None
,
None
)
self
.
_edge_func
=
(
None
,
None
)
...
@@ -111,6 +112,12 @@ class DGLGraph(object):
...
@@ -111,6 +112,12 @@ class DGLGraph(object):
self
.
_msg_graph
.
clear
()
self
.
_msg_graph
.
clear
()
self
.
_msg_frame
.
clear
()
self
.
_msg_frame
.
clear
()
def
clear_messages
(
self
):
"""Clear all messages."""
self
.
_msg_graph
.
clear
()
self
.
_msg_frame
.
clear
()
self
.
_msg_graph
.
add_nodes
(
self
.
number_of_nodes
())
def
number_of_nodes
(
self
):
def
number_of_nodes
(
self
):
"""Return the number of nodes.
"""Return the number of nodes.
...
@@ -422,6 +429,23 @@ class DGLGraph(object):
...
@@ -422,6 +429,23 @@ class DGLGraph(object):
#TODO: attributes
#TODO: attributes
return
nx_graph
return
nx_graph
def
from_networkx
(
self
,
nx_graph
,
node_attrs
=
None
,
edge_attrs
=
None
):
"""Convert from networkx graph.
If 'id' edge attribute exists, the edge will be added follows
the edge id order. Otherwise, order is undefined.
Parameters
----------
nx_graph : networkx.DiGraph
The nx graph
"""
self
.
clear
()
self
.
_graph
.
from_networkx
(
nx_graph
)
self
.
_msg_graph
.
add_nodes
(
self
.
_graph
.
number_of_nodes
())
#TODO: attributes
pass
def
node_attr_schemes
(
self
):
def
node_attr_schemes
(
self
):
"""Return the node attribute schemes.
"""Return the node attribute schemes.
...
@@ -1303,12 +1327,6 @@ class DGLGraph(object):
...
@@ -1303,12 +1327,6 @@ class DGLGraph(object):
self
.
_edge_frame
.
num_rows
,
self
.
_edge_frame
.
num_rows
,
reduce_func
)
reduce_func
)
def
clear_messages
(
self
):
"""Clear all messages."""
self
.
_msg_graph
.
clear
()
self
.
_msg_frame
.
clear
()
self
.
_msg_graph
.
add_nodes
(
self
.
number_of_nodes
())
def
_get_repr
(
attr_dict
):
def
_get_repr
(
attr_dict
):
if
len
(
attr_dict
)
==
1
and
__REPR__
in
attr_dict
:
if
len
(
attr_dict
)
==
1
and
__REPR__
in
attr_dict
:
return
attr_dict
[
__REPR__
]
return
attr_dict
[
__REPR__
]
...
...
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