Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PGL
提交
a545a4d2
P
PGL
项目概览
PaddlePaddle
/
PGL
通知
76
Star
4
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
11
列表
看板
标记
里程碑
合并请求
1
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PGL
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
11
Issue
11
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
a545a4d2
编写于
3月 01, 2020
作者:
L
liweibin
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Graph dump node_feat and edge_feat
上级
752b6169
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
51 addition
and
20 deletion
+51
-20
pgl/graph.py
pgl/graph.py
+51
-20
未找到文件。
pgl/graph.py
浏览文件 @
a545a4d2
...
...
@@ -81,11 +81,11 @@ class EdgeIndex(object):
def
dump
(
self
,
path
):
if
not
os
.
path
.
exists
(
path
):
os
.
makedirs
(
path
)
np
.
save
(
path
+
'/degree.npy'
,
self
.
_degree
)
np
.
save
(
path
+
'/sorted_u.npy'
,
self
.
_sorted_u
)
np
.
save
(
path
+
'/sorted_v.npy'
,
self
.
_sorted_v
)
np
.
save
(
path
+
'/sorted_eid.npy'
,
self
.
_sorted_eid
)
np
.
save
(
path
+
'/indptr.npy'
,
self
.
_indptr
)
np
.
save
(
os
.
path
.
join
(
path
,
'degree.npy'
)
,
self
.
_degree
)
np
.
save
(
os
.
path
.
join
(
path
,
'sorted_u.npy'
)
,
self
.
_sorted_u
)
np
.
save
(
os
.
path
.
join
(
path
,
'sorted_v.npy'
)
,
self
.
_sorted_v
)
np
.
save
(
os
.
path
.
join
(
path
,
'sorted_eid.npy'
)
,
self
.
_sorted_eid
)
np
.
save
(
os
.
path
.
join
(
path
,
'indptr.npy'
)
,
self
.
_indptr
)
class
Graph
(
object
):
...
...
@@ -149,14 +149,27 @@ class Graph(object):
def
dump
(
self
,
path
):
if
not
os
.
path
.
exists
(
path
):
os
.
makedirs
(
path
)
np
.
save
(
path
+
'/num_nodes.npy'
,
self
.
_num_nodes
)
np
.
save
(
path
+
'/edges.npy'
,
self
.
_edges
)
np
.
save
(
os
.
path
.
join
(
path
,
'num_nodes.npy'
)
,
self
.
_num_nodes
)
np
.
save
(
os
.
path
.
join
(
path
,
'edges.npy'
)
,
self
.
_edges
)
if
self
.
_adj_src_index
:
self
.
_adj_src_index
.
dump
(
path
+
'/adj_src'
)
self
.
_adj_src_index
.
dump
(
os
.
path
.
join
(
path
,
'adj_src'
)
)
if
self
.
_adj_dst_index
:
self
.
_adj_dst_index
.
dump
(
path
+
'/adj_dst'
)
self
.
_adj_dst_index
.
dump
(
os
.
path
.
join
(
path
,
'adj_dst'
))
def
dump_feat
(
feat_path
,
feat
):
"""Dump all features to .npy file.
"""
if
len
(
feat
)
==
0
:
return
if
not
os
.
path
.
exists
(
feat_path
):
os
.
makedirs
(
feat_path
)
for
key
in
feat
:
np
.
save
(
os
.
path
.
join
(
feat_path
,
key
+
".npy"
),
feat
[
key
])
dump_feat
(
os
.
path
.
join
(
path
,
"node_feat"
),
self
.
node_feat
)
dump_feat
(
os
.
path
.
join
(
path
,
"edge_feat"
),
self
.
edge_feat
)
@
property
def
adj_src_index
(
self
):
...
...
@@ -821,23 +834,41 @@ class SubGraph(Graph):
class
MemmapEdgeIndex
(
EdgeIndex
):
def
__init__
(
self
,
path
):
self
.
_degree
=
np
.
load
(
path
+
'/degree.npy'
,
mmap_mode
=
"r"
)
self
.
_sorted_u
=
np
.
load
(
path
+
'/sorted_u.npy'
,
mmap_mode
=
"r"
)
self
.
_sorted_v
=
np
.
load
(
path
+
'/sorted_v.npy'
,
mmap_mode
=
"r"
)
self
.
_sorted_eid
=
np
.
load
(
path
+
'/sorted_eid.npy'
,
mmap_mode
=
"r"
)
self
.
_indptr
=
np
.
load
(
path
+
'/indptr.npy'
,
mmap_mode
=
"r"
)
self
.
_degree
=
np
.
load
(
os
.
path
.
join
(
path
,
'degree.npy'
),
mmap_mode
=
"r"
)
self
.
_sorted_u
=
np
.
load
(
os
.
path
.
join
(
path
,
'sorted_u.npy'
),
mmap_mode
=
"r"
)
self
.
_sorted_v
=
np
.
load
(
os
.
path
.
join
(
path
,
'sorted_v.npy'
),
mmap_mode
=
"r"
)
self
.
_sorted_eid
=
np
.
load
(
os
.
path
.
join
(
path
,
'sorted_eid.npy'
),
mmap_mode
=
"r"
)
self
.
_indptr
=
np
.
load
(
os
.
path
.
join
(
path
,
'indptr.npy'
),
mmap_mode
=
"r"
)
class
MemmapGraph
(
Graph
):
def
__init__
(
self
,
path
):
self
.
_num_nodes
=
np
.
load
(
path
+
'/num_nodes.npy'
)
self
.
_edges
=
np
.
load
(
path
+
'/edges.npy'
,
mmap_mode
=
"r"
)
if
os
.
path
.
exists
(
path
+
'/adj_src'
):
self
.
_adj_src_index
=
MemmapEdgeIndex
(
path
+
'/adj_src'
)
self
.
_num_nodes
=
np
.
load
(
os
.
path
.
join
(
path
,
'num_nodes.npy'
))
self
.
_edges
=
np
.
load
(
os
.
path
.
join
(
path
,
'edges.npy'
),
mmap_mode
=
"r"
)
if
os
.
path
.
isdir
(
os
.
path
.
join
(
path
,
'adj_src'
)):
self
.
_adj_src_index
=
MemmapEdgeIndex
(
os
.
path
.
join
(
path
,
'adj_src'
))
else
:
self
.
_adj_src_index
=
None
if
os
.
path
.
exists
(
path
+
'/adj_dst'
):
self
.
_adj_dst_index
=
MemmapEdgeIndex
(
path
+
'/adj_dst'
)
if
os
.
path
.
isdir
(
os
.
path
.
join
(
path
,
'adj_dst'
)):
self
.
_adj_dst_index
=
MemmapEdgeIndex
(
os
.
path
.
join
(
path
,
'adj_dst'
))
else
:
self
.
_adj_dst_index
=
None
def
load_feat
(
feat_path
):
"""Load features from .npy file.
"""
feat
=
{}
if
os
.
path
.
isdir
(
feat_path
):
for
feat_name
in
os
.
listdir
(
feat_path
):
feat
[
os
.
path
.
splitext
(
feat_name
)[
0
]]
=
np
.
load
(
os
.
path
.
join
(
feat_path
,
feat_name
),
mmap_mode
=
"r"
)
return
feat
self
.
_node_feat
=
load_feat
(
os
.
path
.
join
(
path
,
'node_feat'
))
self
.
_edge_feat
=
load_feat
(
os
.
path
.
join
(
path
,
'edge_feat'
))
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录