文件历史

135 次代码提交

作者 SHA1 备注 提交日期
Minjie Wang eafcb7e7f5 [Bugfix][MXNet] Fix edge order and builtin max bug in mx (#247)
* Fix edge order and builtin max bug in mx

* fix as requested
2018-12-05 01:32:54 -08:00
Lingfan Yu 274e1082f5 [Doc] API doc string for many components (#245)
* builtin function docstring

* init docstring

* view docstring

* add init to index and fix

* node /edge feature

* Example -> Examples

* fix func hyperlink

* traversal

* fix

* from/to_networkx docstring

* minor

* fix duplicate label

* comment about tensor framework

* from scipy sparse matrix

* fix format errors
2018-12-04 17:52:00 -05:00
Mufei Li 7cca500787 [Doc] Computing with DGLGraph (#212)
* Docs for graph computing

* Docs for graph computing

* Fix

* WIP

* update the docstring
2018-12-04 16:51:46 -05:00
Lingfan Yu 455ea48570 [Bugfix] Conversion between networkx and DGLGraph (#244)
* copy feature to networkx

* fix to_network for multi-graph

* test case for nx conversion

* iterate over Index returns plain int instead of numpy.int64

* fix from_network multi-edge bug
2018-12-04 16:19:11 -05:00
Lingfan Yu 52ed09a392 [Bug] Fix inplace update (#221)
* inplace write row op and executor

* update scheduler and graph to use inplace write

* fix

* fix bug

* test case for inplace

* fix bugs for inplace apply node/edge

* fix comments

* th.allclose -> U.allclose
2018-12-02 19:14:39 -05:00
Gan Quan 5680f8dc13 [DOC] Documentation strings for graph mutation, queries, and subgraphing (#207)
* docstrings for graph mutation & queries

* [Doc] contrib.sampler. (#200)

* subgraph docs

* updates
2018-12-02 14:41:25 -05:00
Minjie Wang 57daf9c9a6 [Graph] small fix on the all index (#219) 2018-12-02 13:39:04 -05:00
Da Zheng 57b07fce92 [Model] Accelerate SSE (#172)
* lazy eval edge ids.

* parallelize node id lookup.

* fix a bug.

* use mxnet for index.

* use update_all in the subgraph training.

* sample neighbors.

* Revert "parallelize node id lookup."

This reverts commit e661f69bb06cb5a7c246f0e106f245e27800e220.

* update README.

* cache subgraphs.

* support all degrees.

* cache adj in CPU.

* fix a bug in sse.

* print.

* raise error on mutable graphs.

* measure train time per epoch.

* fix a bug in graph_index.

* remove readonly in DGLSubGraph.

* cache subgraph properly.

* accelerate getting adjacency.

* split infer.

* lazy eval edges.

* specify inference mode.

* update for new sampler.

* use new mxnet sampling api.

* fix indent.

* remove profiling code.

* remove mxnet from sampler.

* return a lambda function for graph edges.

* add docs for immutable subgraph.

* Revert "return a lambda function for graph edges."

This reverts commit 0de5d7f100e230c518a3fb8976a6227f474d09ee.

* get parent_eid.
2018-12-02 12:43:25 -05:00
Lingfan Yu 53ea03ad82 [Doc] Fix doc bug and warning (#213)
* fix dgmg tutorial indentation

* bug in incidence_matrix docstring

* remove print
2018-12-01 18:58:56 -05:00
Mufei Li a0d0b1ea00 [Model] Fix + batched DGMG (#175)
* DGMG with batch size 1

* Fix

* Adjustment

* Fix

* Fix

* Fix

* Fix

* Fix has_node and __contains__

* Batched implementation for DGMG

* Remove redundant dependency

* Adjustment

* Fix

* Add comments
2018-11-29 00:13:30 +08:00
Minjie Wang b1eeb93449 [Bugfix][Runtime] Zero degree behaviors (#177)
* fix recv nodes are all 0deg; fix hybriddict does not through keyerror properly

* fallback to apply_nodes when all nodes are 0deg; WIP on pull spmv 0deg

* new 0deg behavior

* new 0deg behavior

* update mx utest for pull-0deg

* fix mx

* fix mx

* get rid of unnecessary sort-n-unique
2018-11-25 22:33:08 -05:00
Zihao Ye 23e2e83b5e [API] change the signature of node/edge filter (#166)
* change the signature of node/edge filter

* upd filter
2018-11-22 13:00:36 -05:00
Lingfan Yu deb653f8dc [Runtime] Scheduler and Executor (#140)
* executor api

* draft executor interface

* WIP

* revert changes to avoid conflict with api change

* core scheduling logic

* WIP: build graph adj

* incidence matrix for in edges

* support incidence matrix for partial recv nodes

* improve

* build adjmat in scheduler

* graph store

* get degree bucketing schedule

* connect to c++ degree bucketing

* conceptual executor creation code

* executor comments

* fix

* more executor comments

* WIP: full send_and_recv schedule

* most schedulers

* simplify scheduler

* executors

* runtime

* builtin function base class

* adj indices and shape

* completely refactor scheduler

* rename and move bundled out to function.py

* use_edge_feature in msg func

* rewrite scheduler

* node edge executor

* connect with graph api

* handle zero degree

* misc

* fix test cases

* fix a good many bugs...

* remove old scheduler

* push and pull

* fix send recv

* c++ lint

* fix batched send recv

* hot fix for mxnet

* typo

* write back executor

* apply node edge

* clean up, doc string

* fix as requested

* refactor

* fix

* WIP

* WIP

* ir draft

* more on ir

* WIP: spmv schedule

* WIP

* recv schedule

* refactor

* WIP

* snr degree bucketing

* snr scheduler

* move prog to graph.py; rename

* unittest for send/recv

* remove some legacy codes

* WIP: update_all

* pass test_basics

* passed all current utests

* more utests; fix mx utest

* WIP: fixing zero deg initial value

* some tests

* fix 0deg problem

* fix mx

* fix mx

* some notes

* fix as requested
2018-11-22 12:15:50 -05:00
Minjie Wang 0ec1a492b3 [Frame] change num rows behavior (#163)
* move initializer to column scheme; change num rows behavior

* poke mx ci

* fix mx utest in append

* fix bug in add edges

* utest for updating partial rows

* fix bug in from_networkx and from_scipy_matrix

* revert per-col initializer change

* fix pickle utest
2018-11-21 11:50:46 -05:00
Gan Quan e515f5311b [Frame] supporting partial row on first column and individual column initializers (#160)
addresses issue #156
2018-11-19 18:18:36 -05:00
Minjie Wang 048f6d7a30 [GraphIndex] refactor graph caching (#150)
* refactor graph caching

* fix mx test

* fix typo
2018-11-13 22:12:38 -05:00
Minjie Wang 8ea359d125 [API] Message propagation APIs (#127)
* add examples in traversal.py

* message propagate methods

* use the new message propagation for tree-lstm

* update to the new name

* update propagate API doc

* update doc

* add propagate utest
2018-11-09 15:04:57 -05:00
Minjie Wang 7fe6d0c857 [Doc] Refactor API doc (#128)
* refactor API doc; add markup link in tutorials

* fix readme
2018-11-08 22:57:16 -05:00
Da Zheng bd0e4fa0b3 [MXNet][API] move to the new API (#123)
* move gat to the new api.

* fix gcn.

* update sse.

* fix dgl core.

* update sse.

* fix small bugs in dgl core.

* fix mxnet tests.

* retrigger

* address comments and fix more bugs.

* fix

* fix tests.
2018-11-08 10:00:47 -08:00
GaiYu0 2319167444 [API] Graph traversal (#103)
* bfs, dfs and topological traversal

* dfs and test cases

* Conflicts:
	python/dgl/graph.py
	src/graph/graph.cc
	src/graph/graph_op.cc

* documentation

* requested changes

* Conflicts:
	Jenkinsfile
	examples/pytorch/gcn/gcn.py
	examples/pytorch/gcn/gcn_spmv.py
	python/dgl/graph.py
	python/dgl/graph_index.py
	src/graph/graph.cc
	src/graph/graph_op.cc

* Conflicts:
	Jenkinsfile
	python/dgl/graph_index.py

* fix lint errors

* fix lint errors

* fix lint errors

* fix test cases

* requested changes

* traversal interface

* [Bug] fixed a typo that caused syntax error (#120)

* WIP

* bfs nodes generator works

* topological traversal

* WIP: dfs_edges

* dfs edges

* dfs labeled edges

* utest for traversal

* fix lint

* fix utest

* code clean

* changes as requested
2018-11-08 10:14:19 -05:00
Minjie Wang 7241a9c008 [Backend] backend interface (#109)
* backend interface

* small fix

* more comments to the data type dict

* WIP

* convert_to and narrow

* WIP

* pytorch and numpy backend; WIP on mxnet backend

* mxnet backend

* narrow

* Fix all usages

* fix for mx

* fix for mx

* fix mx

* fix mx

* fix mx

* fix mx

* fix mx

* fix mx

* fix mx

* revert jenkins

* add sparse_matrix api

* sparse matrix api

* some fixme

* Fix as requested
2018-11-04 21:42:39 -05:00
Minjie Wang b355d1eddf [API] Apply nodes & apply edges (#117) 2018-11-04 01:22:53 -04:00
Minjie Wang 68ec624782 [API][Doc] API change & basic tutorials (#113)
* Add SH tutorials

* setup sphinx-gallery; work on graph tutorial

* draft dglgraph tutorial

* update readme to include document url

* rm obsolete file

* Draft the message passing tutorial

* Capsule code (#102)

* add capsule example

* clean code

* better naming

* better naming

* [GCN]tutorial scaffold

* fix capsule example code

* remove previous capsule example code

* graph struc edit

* modified:   2_graph.py

* update doc of capsule

* update capsule docs

* update capsule docs

* add msg passing prime

* GCN-GAT tutorial Section 1 and 2

* comment for API improvement

* section 3

* Tutorial API change (#115)

* change the API as discusses; toy example

* enable the new set/get syntax

* fixed pytorch utest

* fixed gcn example

* fixed gat example

* fixed mx utests

* fix mx utest

* delete apply edges; add utest for update_edges

* small change on toy example

* fix utest

* fix out in degrees bug

* update pagerank example and add it to CI

* add delitem for dataview

* make edges() return form that is compatible with send/update_edges etc

* fix index bug when the given data is one-int-tensor

* fix doc
2018-11-02 17:19:14 -04:00
Gan Quan 2ecd2b23ec [Frame] Support slice type indexing; optimize dgl.batch (#110)
* cherry picking optimization from jtnn

* unbatch by slicing frames

* reduce pack

* oops

* support frame read/write with slices

* reverting to unbatch by splitting; slicing is unfriendly to backward

* replacing lru cache with static object factory

* replacing Scheme object with namedtuple

* remove comment

* forgot the find edges interface

* subclassing namedtuple
2018-11-01 00:03:06 -04:00
Mufei Li 9827e48176 Support for adding nodes/edges after setting representations (#114)
* Fix

1. Fix two typos in gcn.py and gcn_spmv.py
2. Update README

* Fix GCN module

1. Update the outdated graph convolution layer class
2. Fix a bug in the code where dropout never works. Modules like dropout/batch norm depend on whether we are in the training stage or inference stage.

* Fix a bug in dropout

1. dropout depends on nn.Module.training

* Update GCN module

* Fix README

* Fix dropout & remove self.msg_field

* Fix

* Align with TF implementation

* Make g an argument for forward

* Remove features from the argument of GraphConv layer

* Support for create nodes/edges after setting representations

* Remove redundant commit

* Delete test_init_repr.py

* Test case for dynamic addition

* Base 'add_rows' upon 'append'

* Move test function

* Fix

* test by assertion

* changed add_rows to adding blank rows only; adding convert_to to backend

* moving test to basics

* oops mxnet
2018-10-29 23:33:54 -04:00
Da Zheng 9e9a9488f1 [GraphIndex] Immutable graph index using MXNet CSRArray (#86)
* add immutable graph index.

* update ImmutableGraphIndex.

* add benchmarks of subgraph generation.

* fix node_subgraphs.

* use scipy synthetic data in immutable graph.

* create immutable_graph.

* use spmv in gcn.

* fix immutable graph index.

* update graph index.

* create ImmutableSubgraphIndex.

* return subgraph node and edge mapping.

* fix benchmark.

* add mapping to subgraph nid.

* test in_edges and out_edges.

* update benchmark.

* Fix immutable subgraph.

* complete in_edges and out_edges.

* fix benchmarks.

* add test on node_subgraphs

* add sse.

* construct subgraphs in parallel.

* add in/out degree(s).

* make immutable graph index backend-specific.

* implement has_edge(s) and edge_id(s).

* Revert "use spmv in gcn."

This reverts commit 9cfed5f5fb3dd2ed9b98745348b1c0e9731ed7f7.

* implement node_subgraphs in GraphIndex.

* fix sse.

* address comments.

* address comments.

* Update mxnet docker.
2018-10-26 11:28:25 -07:00
Minjie Wang 2046980231 [DOC] API tutorials (#96)
* setup sphinx-gallery; work on graph tutorial

* draft dglgraph tutorial

* update readme to include document url

* rm obsolete file

* Draft the message passing tutorial
2018-10-23 16:27:15 -04:00
Minjie Wang 3e76bcc052 remove anonymous repr 2018-10-18 21:43:40 -04:00
Minjie Wang b9631912db [Frame] Refactor frame. (#85)
* refactor frame codes

* fix unit test

* fix gcn example

* minor doc/message changes

* raise errors for non-exist columns in FrameRef; sanity check when append

* fix unittest; change error msg

* Add warning for none initializer

* fix unittest

* use warnings package
2018-10-18 15:08:21 -04:00
Minjie Wang 66261aee03 [Hotfix] Revert part of the send logic; disable the send twice test case; GCN on GPU works again. (#88) 2018-10-18 14:20:44 -04:00
Gan Quan bc3f852dab [GRAPHINDEX] Multigraph support (#79)
* multigraph support on graph index

* more tests

* multigraph flag, bugfix on clear & copy

* networkx interfaces

* including graph index tests in Jenkins

* node subgraph test

* edge subgraphs

* removing duplicates in pred/succ

* more explicit test and doc

* query source and destination from edge id

* subgraphindex

* renaming has_edge to has_edge_between, apply_edges adding eid

* send_on and send_and_recv_on

* DGLGraph edge subgraph

* merged send_on and send_and_recv_on

* change request

* removing hashmap

* creating multigraph by flag; mingw support

* changes per request

* reverting networkx auto multigraph discovery

* notes on send/send_and_recv on multigraphs

* changing test reducer from sum to max

* added a fixme note in spmv scheduler
2018-10-17 21:46:10 -04:00
Lingfan Yu 750e50372a Efficient send_and_recv (#83)
* python side send_and_recv shortcut

* common util function for c apis

* degree bucketing scheduler

* scheduler c apis

* cmake

* python side logics

* minor

* fix multiple msg/red func cases

* remove shell echo command in Jenkinsfile...

* fuse apply for send_and_recv

* fuse update func for update_all

* typo...

* handle anonymous

* add degree bucketing for entire graph

* degree bucketing executor

* minor

* style

* rename graph_mapping to recv_nodes

* fix some comments
2018-10-17 11:14:52 -04:00
Gan Quan b2c1c4facd node/edge filtering (#80)
* node/edge filtering

* changing to tensor operations (what did i do???)

* ???
2018-10-16 21:37:43 -04:00
Gan Quan 16da76c4b4 fix #81 2018-10-16 10:39:50 -04:00
GaiYu0 e7679cf2e6 implement requested changes 2018-10-13 14:24:46 +08:00
GaiYu0 0a6d720c30 fix build failure 2018-10-10 12:43:05 +08:00
GaiYu0 885f5e7313 Merge branch 'cpp' of https://github.com/jermainewang/dgl into line-graph 2018-10-09 16:08:18 +08:00
Minjie Wang 3d38c2a93e small fix 2018-10-08 13:30:50 -04:00
GaiYu0 baf5906bab (non)-backtracking line graph 2018-10-08 08:04:25 +08:00
Lingfan Yu cdf7334cc6 Dockerfile and CI (#74)
* Test CPP branch CI (#2)

* Fix batching node-only graphs (#62)

* fixing batching with graphs with no edges

* oops forgot test

* fix readme

* Docker and Jenkins (#1)

* docker ci cpu

* install python packages

* docker ci gpu

* add readme

* use dgl cpu image

* run command in container as root

* use python3

* fix test case

* remove nose from docker file

* docker folder readme

* parallelize cpu and gpu

* top level stages

* comment out python2 related installation

* fix

* remove igraph

* building for cpp

* change building order

* export env in test stage

* withEnv

* run docker container as root

* fix test cases

* fix test cases

* minor

* remove old build
2018-10-07 19:18:43 -04:00
GaiYu0 905db29286 cpp lg 2018-10-07 22:25:45 +08:00
GaiYu0 596ca471a5 Merge branch 'cpp' of https://github.com/jermainewang/dgl into line-graph 2018-10-06 23:52:04 +08:00
GaiYu0 8a6d25ae69 Resolve conflicts in python/dgl/graph.py 2018-10-06 16:13:06 +08:00
Minjie Wang 72f6345515 Fix for subgraph test and some docs 2018-10-05 23:58:42 -04:00
Da Zheng b0e02e5b52 Update the subgraph (#73)
* update subgraph.

* update subgraph API.

* keep node embedding.
2018-10-05 22:17:33 -04:00
Minjie Wang c468e06867 some fix 2018-10-05 10:38:44 -04:00
GaiYu0 26dcfb5bc2 Merge branch 'cpp' of https://github.com/jermainewang/dgl into cpp
Conflicts:
	python/dgl/graph.py
2018-10-04 21:26:56 +08:00
GaiYu0 cc372e3774 sbm mixture 2018-10-04 21:22:41 +08:00
Minjie Wang fde4f581d2 gcn runnable 2018-10-03 21:05:19 -04:00
Minjie Wang 7d04c8c9f3 remove nonbatchable mode 2018-10-03 12:20:12 -04:00