diff --git a/.clang-format b/.clang-format old mode 100644 new mode 100755 diff --git a/.flake8 b/.flake8 old mode 100644 new mode 100755 diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md old mode 100644 new mode 100755 diff --git a/.github/ISSUE_TEMPLATE/documentation-improvement.md b/.github/ISSUE_TEMPLATE/documentation-improvement.md old mode 100644 new mode 100755 diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md old mode 100644 new mode 100755 diff --git a/.github/ISSUE_TEMPLATE/general-question.md b/.github/ISSUE_TEMPLATE/general-question.md old mode 100644 new mode 100755 diff --git a/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md b/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md old mode 100644 new mode 100755 diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml old mode 100644 new mode 100755 diff --git a/.github/workflows/db2graph_test_postgres.yml b/.github/workflows/db2graph_test_postgres.yml old mode 100644 new mode 100755 diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml old mode 100644 new mode 100755 diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 index 7e75fc8b..3824b4c9 --- a/.gitignore +++ b/.gitignore @@ -171,3 +171,4 @@ Thumbs.db # End of https://www.toptal.com/developers/gitignore/api/python +simulator/datasets \ No newline at end of file diff --git a/.gitmodules b/.gitmodules old mode 100644 new mode 100755 diff --git a/CMakeLists.txt b/CMakeLists.txt old mode 100644 new mode 100755 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md old mode 100644 new mode 100755 diff --git a/LICENSE b/LICENSE old mode 100644 new mode 100755 diff --git a/MANIFEST.in b/MANIFEST.in old mode 100644 new mode 100755 diff --git a/README.md b/README.md old mode 100644 new mode 100755 diff --git a/docs/.nojekyll b/docs/.nojekyll old mode 100644 new mode 100755 diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt old mode 100644 new mode 100755 diff --git a/docs/Doxyfile b/docs/Doxyfile old mode 100644 new mode 100755 diff --git a/docs/Doxyfile.in b/docs/Doxyfile.in old mode 100644 new mode 100755 diff --git a/docs/README.md b/docs/README.md old mode 100644 new mode 100755 diff --git a/docs/_static/css/marius_theme.css b/docs/_static/css/marius_theme.css old mode 100644 new mode 100755 diff --git a/docs/_templates/layout.html b/docs/_templates/layout.html old mode 100644 new mode 100755 diff --git a/docs/assets/configuration_lp.png b/docs/assets/configuration_lp.png old mode 100644 new mode 100755 diff --git a/docs/assets/configuration_nc.png b/docs/assets/configuration_nc.png old mode 100644 new mode 100755 diff --git a/docs/assets/marius_arch.png b/docs/assets/marius_arch.png old mode 100644 new mode 100755 diff --git a/docs/assets/samples_dismult.png b/docs/assets/samples_dismult.png old mode 100644 new mode 100755 diff --git a/docs/assets/samples_gs.png b/docs/assets/samples_gs.png old mode 100644 new mode 100755 diff --git a/docs/conf.py b/docs/conf.py old mode 100644 new mode 100755 diff --git a/docs/config_interface/configuration.rst b/docs/config_interface/configuration.rst old mode 100644 new mode 100755 diff --git a/docs/config_interface/full_schema.rst b/docs/config_interface/full_schema.rst old mode 100644 new mode 100755 diff --git a/docs/config_interface/index.rst b/docs/config_interface/index.rst old mode 100644 new mode 100755 diff --git a/docs/config_interface/samples.rst b/docs/config_interface/samples.rst old mode 100644 new mode 100755 diff --git a/docs/db2graph/db2graph.rst b/docs/db2graph/db2graph.rst old mode 100644 new mode 100755 diff --git a/docs/examples/config/index.rst b/docs/examples/config/index.rst old mode 100644 new mode 100755 diff --git a/docs/examples/config/lp_custom.rst b/docs/examples/config/lp_custom.rst old mode 100644 new mode 100755 diff --git a/docs/examples/config/lp_fb15k237.rst b/docs/examples/config/lp_fb15k237.rst old mode 100644 new mode 100755 diff --git a/docs/examples/config/lp_paleobiology.rst b/docs/examples/config/lp_paleobiology.rst old mode 100644 new mode 100755 diff --git a/docs/examples/config/nc_custom.rst b/docs/examples/config/nc_custom.rst old mode 100644 new mode 100755 diff --git a/docs/examples/config/nc_ogbn_arxiv.rst b/docs/examples/config/nc_ogbn_arxiv.rst old mode 100644 new mode 100755 diff --git a/docs/examples/config/resume_training.rst b/docs/examples/config/resume_training.rst old mode 100644 new mode 100755 diff --git a/docs/examples/index.rst b/docs/examples/index.rst old mode 100644 new mode 100755 diff --git a/docs/examples/introduction.rst b/docs/examples/introduction.rst old mode 100644 new mode 100755 diff --git a/docs/examples/prediction/command_line.rst b/docs/examples/prediction/command_line.rst old mode 100644 new mode 100755 diff --git a/docs/examples/prediction/python.rst b/docs/examples/prediction/python.rst old mode 100644 new mode 100755 diff --git a/docs/examples/preprocessing/command_line.rst b/docs/examples/preprocessing/command_line.rst old mode 100644 new mode 100755 diff --git a/docs/examples/preprocessing/python.rst b/docs/examples/preprocessing/python.rst old mode 100644 new mode 100755 diff --git a/docs/examples/python/index.rst b/docs/examples/python/index.rst old mode 100644 new mode 100755 diff --git a/docs/examples/python/lp_custom.rst b/docs/examples/python/lp_custom.rst old mode 100644 new mode 100755 diff --git a/docs/examples/python/lp_fb15k237.rst b/docs/examples/python/lp_fb15k237.rst old mode 100644 new mode 100755 diff --git a/docs/examples/python/nc_ogbn_arxiv.rst b/docs/examples/python/nc_ogbn_arxiv.rst old mode 100644 new mode 100755 diff --git a/docs/export_and_inference/index.rst b/docs/export_and_inference/index.rst old mode 100644 new mode 100755 diff --git a/docs/export_and_inference/marius_postprocess.rst b/docs/export_and_inference/marius_postprocess.rst old mode 100644 new mode 100755 diff --git a/docs/export_and_inference/marius_predict.rst b/docs/export_and_inference/marius_predict.rst old mode 100644 new mode 100755 diff --git a/docs/favicon.ico b/docs/favicon.ico old mode 100644 new mode 100755 diff --git a/docs/graph_learning/decoders.rst b/docs/graph_learning/decoders.rst old mode 100644 new mode 100755 diff --git a/docs/graph_learning/downstream_tasks.rst b/docs/graph_learning/downstream_tasks.rst old mode 100644 new mode 100755 diff --git a/docs/graph_learning/encoders.rst b/docs/graph_learning/encoders.rst old mode 100644 new mode 100755 diff --git a/docs/graph_learning/index.rst b/docs/graph_learning/index.rst old mode 100644 new mode 100755 diff --git a/docs/graph_learning/intro.rst b/docs/graph_learning/intro.rst old mode 100644 new mode 100755 diff --git a/docs/graph_learning/learning_tasks.rst b/docs/graph_learning/learning_tasks.rst old mode 100644 new mode 100755 diff --git a/docs/index.rst b/docs/index.rst old mode 100644 new mode 100755 diff --git a/docs/introduction.rst b/docs/introduction.rst old mode 100644 new mode 100755 diff --git a/docs/marius_logo.png b/docs/marius_logo.png old mode 100644 new mode 100755 diff --git a/docs/marius_logo.svg b/docs/marius_logo.svg old mode 100644 new mode 100755 diff --git a/docs/marius_logo_scaled.png b/docs/marius_logo_scaled.png old mode 100644 new mode 100755 diff --git a/docs/preprocess_datasets/built_in.rst b/docs/preprocess_datasets/built_in.rst old mode 100644 new mode 100755 diff --git a/docs/preprocess_datasets/command_line.rst b/docs/preprocess_datasets/command_line.rst old mode 100644 new mode 100755 diff --git a/docs/preprocess_datasets/index.rst b/docs/preprocess_datasets/index.rst old mode 100644 new mode 100755 diff --git a/docs/preprocess_datasets/python.rst b/docs/preprocess_datasets/python.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/configuration/index.rst b/docs/python_api/configuration/index.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/data/batch.rst b/docs/python_api/data/batch.rst deleted file mode 100644 index 9472a633..00000000 --- a/docs/python_api/data/batch.rst +++ /dev/null @@ -1,11 +0,0 @@ - -Batch -================= - - -.. autoclass:: marius.data.Batch - :members: - :undoc-members: - :exclude-members: to - - .. method:: to(self: marius._data.Batch, device: torch.device) -> None \ No newline at end of file diff --git a/docs/python_api/data/dataloader.rst b/docs/python_api/data/dataloader.rst deleted file mode 100644 index f078038e..00000000 --- a/docs/python_api/data/dataloader.rst +++ /dev/null @@ -1,17 +0,0 @@ - -DataLoader -============================ - - -.. autoclass:: marius.data.DataLoader - :members: - :undoc-members: - :exclude-members: __init__, getBatch - - .. method:: __init__(self: marius._data.DataLoader, graph_storage: GraphModelStorage, learning_task: str, training_config: marius._config.TrainingConfig, evaluation_config: marius._config.EvaluationConfig, encoder_config: marius._config.EncoderConfig) -> None - - .. method:: __init__(self: marius._data.DataLoader, graph_storage: GraphModelStorage, learning_task: str, batch_size: int = 1000, neg_sampler: marius._data.samplers.NegativeSampler = None, nbr_sampler: marius._data.samplers.NeighborSampler = None, train: bool = False) -> None - - .. method:: __init__(self: marius._data.DataLoader, edges: Optional[torch.Tensor], learning_task: str, nodes: Optional[torch.Tensor] = None, node_features: Optional[torch.Tensor] = None, node_embeddings: Optional[torch.Tensor] = None, node_optim_state: Optional[torch.Tensor] = None, node_labels: Optional[torch.Tensor] = None, train_edges: Optional[torch.Tensor] = None, batch_size: int = 1000, neg_sampler: marius._data.samplers.NegativeSampler = None, nbr_sampler: marius._data.samplers.NeighborSampler = None, filter_edges: List[torch.Tensor] = [], train: bool = False) -> None - - .. method:: getBatch(self: marius._data.DataLoader, device: Optional[torch.device] = None, perform_map: bool = True) -> marius._data.Batch \ No newline at end of file diff --git a/docs/python_api/data/dense_graph.rst b/docs/python_api/data/dense_graph.rst deleted file mode 100644 index 7ebe0022..00000000 --- a/docs/python_api/data/dense_graph.rst +++ /dev/null @@ -1,19 +0,0 @@ - -DENSEGraph -============================ - - -.. autoclass:: marius.data.DENSEGraph - :members: - :undoc-members: - :exclude-members: __init__, getNeighborIDs, setNodeProperties, to - - .. method:: __init__(self: marius._data.DENSEGraph) -> None - - .. method:: __init__(self: marius._data.DENSEGraph, hop_offsets: torch.Tensor, node_ids: torch.Tensor, in_offsets: torch.Tensor, in_neighbors_vec: List[torch.Tensor], in_neighbors: torch.Tensor, out_offsets: torch.Tensor, out_neighbors_vec: List[torch.Tensor], out_neighbors: torch.Tensor, num_nodes_in_memory: int) -> None - - .. method:: getNeighborIDs(self: marius._data.DENSEGraph, incoming: bool = True, global_ids: bool = False) -> torch.Tensor - - .. method:: setNodeProperties(self: marius._data.DENSEGraph, node_properties: torch.Tensor) -> None - - .. method:: to(self: marius._data.DENSEGraph, device: torch.device) -> None \ No newline at end of file diff --git a/docs/python_api/data/graph.rst b/docs/python_api/data/graph.rst deleted file mode 100644 index 203900d3..00000000 --- a/docs/python_api/data/graph.rst +++ /dev/null @@ -1,25 +0,0 @@ - -MariusGraph -============================ - - -.. autoclass:: marius.data.MariusGraph - :members: - :undoc-members: - :exclude-members: __init__, getEdges, getNeighborOffsets, getNeighborsForNodeIds, getNumNeighbors, getRelationIDs, to - - .. method:: __init__(self: marius._data.MariusGraph) -> None - - .. method:: __init__(self: marius._data.MariusGraph, src_sorted_edges: torch.Tensor, dst_sorted_edges: torch.Tensor, num_nodes_in_memory: int) -> None - - .. method:: getEdges(self: marius._data.MariusGraph, incoming: bool = True) -> torch.Tensor - - .. method:: getNeighborOffsets(self: marius._data.MariusGraph, incoming: bool = True) -> torch.Tensor - - .. method:: getNeighborsForNodeIds(self: marius._data.MariusGraph, node_ids: torch.Tensor, incoming: bool, neighbor_sampling_layer: marius._config.NeighborSamplingLayer, max_neighbors_size: int, rate: float) -> Tuple(torch.Tensor, torch.Tensor) - - .. method:: getNumNeighbors(self: marius._data.MariusGraph, incoming: bool = True) -> torch.Tensor - - .. method:: getRelationIDs(self: marius._data.MariusGraph, incoming: bool = True) -> torch.Tensor - - .. method:: to(self: marius._data.MariusGraph, device: torch.device) -> None \ No newline at end of file diff --git a/docs/python_api/data/index.rst b/docs/python_api/data/index.rst deleted file mode 100644 index 6372b54f..00000000 --- a/docs/python_api/data/index.rst +++ /dev/null @@ -1,13 +0,0 @@ - -marius.data -******************** - -.. toctree:: - :glob: - :maxdepth: 2 - - samplers/index - batch - dataloader - dense_graph - graph.rst \ No newline at end of file diff --git a/docs/python_api/data/samplers/edge.rst b/docs/python_api/data/samplers/edge.rst deleted file mode 100644 index 77554eee..00000000 --- a/docs/python_api/data/samplers/edge.rst +++ /dev/null @@ -1,9 +0,0 @@ - -RandomEdgeSampler -======================================= - - -.. autoclass:: marius.data.samplers.RandomEdgeSampler - :members: - :undoc-members: - :special-members: __init__ \ No newline at end of file diff --git a/docs/python_api/data/samplers/index.rst b/docs/python_api/data/samplers/index.rst deleted file mode 100644 index c2a6159d..00000000 --- a/docs/python_api/data/samplers/index.rst +++ /dev/null @@ -1,11 +0,0 @@ - -samplers -******************** - -.. toctree:: - :glob: - :maxdepth: 2 - - edge - negative - neighbor \ No newline at end of file diff --git a/docs/python_api/data/samplers/negative.rst b/docs/python_api/data/samplers/negative.rst deleted file mode 100644 index 54d202c4..00000000 --- a/docs/python_api/data/samplers/negative.rst +++ /dev/null @@ -1,9 +0,0 @@ - -CorruptNodeNegativeSampler -==================================================== - - -.. autoclass:: marius.data.samplers.CorruptNodeNegativeSampler - :members: - :undoc-members: - :special-members: __init__ \ No newline at end of file diff --git a/docs/python_api/data/samplers/neighbor.rst b/docs/python_api/data/samplers/neighbor.rst deleted file mode 100644 index 99e98b23..00000000 --- a/docs/python_api/data/samplers/neighbor.rst +++ /dev/null @@ -1,15 +0,0 @@ - -LayeredNeighborSampler -==================================================== - - -.. autoclass:: marius.data.samplers.LayeredNeighborSampler - :members: - :undoc-members: - :exclude-members: __init__ - - .. method:: __init__(self: marius._data.samplers.LayeredNeighborSampler, storage: GraphModelStorage, num_neighbors: List[int], incoming: bool = True, outgoing: bool = True, use_hashmap_sets: bool = False) -> None - - .. method:: __init__(self: marius._data.samplers.LayeredNeighborSampler, graph: MariusGraph, num_neighbors: List[int], incoming: bool = True, outgoing: bool = True, use_hashmap_sets: bool = False) -> None - - .. method:: __init__(self: marius._data.samplers.LayeredNeighborSampler, num_neighbors: List[int], incoming: bool = True, outgoing: bool = True, use_hashmap_sets: bool = False) -> None \ No newline at end of file diff --git a/docs/python_api/index.rst b/docs/python_api/index.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/manager/index.rst b/docs/python_api/manager/index.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/nn/activation.rst b/docs/python_api/nn/activation.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/nn/decoders/decoder.rst b/docs/python_api/nn/decoders/decoder.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/nn/decoders/edge/comparators.rst b/docs/python_api/nn/decoders/edge/comparators.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/nn/decoders/edge/complex.rst b/docs/python_api/nn/decoders/edge/complex.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/nn/decoders/edge/distmult.rst b/docs/python_api/nn/decoders/edge/distmult.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/nn/decoders/edge/edge_decoder.rst b/docs/python_api/nn/decoders/edge/edge_decoder.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/nn/decoders/edge/index.rst b/docs/python_api/nn/decoders/edge/index.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/nn/decoders/edge/relation_operators.rst b/docs/python_api/nn/decoders/edge/relation_operators.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/nn/decoders/edge/transe.rst b/docs/python_api/nn/decoders/edge/transe.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/nn/decoders/index.rst b/docs/python_api/nn/decoders/index.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/nn/decoders/node/index.rst b/docs/python_api/nn/decoders/node/index.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/nn/decoders/node/node_decoder.rst b/docs/python_api/nn/decoders/node/node_decoder.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/nn/decoders/node/noop_node_decoder.rst b/docs/python_api/nn/decoders/node/noop_node_decoder.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/nn/encoders/general_encoder.rst b/docs/python_api/nn/encoders/general_encoder.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/nn/encoders/index.rst b/docs/python_api/nn/encoders/index.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/nn/index.rst b/docs/python_api/nn/index.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/nn/initialization.rst b/docs/python_api/nn/initialization.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/nn/layers/embedding.rst b/docs/python_api/nn/layers/embedding.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/nn/layers/feature.rst b/docs/python_api/nn/layers/feature.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/nn/layers/gnn.rst b/docs/python_api/nn/layers/gnn.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/nn/layers/index.rst b/docs/python_api/nn/layers/index.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/nn/layers/layer.rst b/docs/python_api/nn/layers/layer.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/nn/layers/reduction.rst b/docs/python_api/nn/layers/reduction.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/nn/loss.rst b/docs/python_api/nn/loss.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/nn/model.rst b/docs/python_api/nn/model.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/nn/optim.rst b/docs/python_api/nn/optim.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/pipeline/evaluator.rst b/docs/python_api/pipeline/evaluator.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/pipeline/graph_encoder.rst b/docs/python_api/pipeline/graph_encoder.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/pipeline/index.rst b/docs/python_api/pipeline/index.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/pipeline/trainer.rst b/docs/python_api/pipeline/trainer.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/reporting/index.rst b/docs/python_api/reporting/index.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/reporting/metrics.rst b/docs/python_api/reporting/metrics.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/reporting/reporters.rst b/docs/python_api/reporting/reporters.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/storage/graph_storage.rst b/docs/python_api/storage/graph_storage.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/storage/index.rst b/docs/python_api/storage/index.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/storage/storage.rst b/docs/python_api/storage/storage.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/tools/configuration/constants.rst b/docs/python_api/tools/configuration/constants.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/tools/configuration/datatypes.rst b/docs/python_api/tools/configuration/datatypes.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/tools/configuration/index.rst b/docs/python_api/tools/configuration/index.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/tools/configuration/marius_config.rst b/docs/python_api/tools/configuration/marius_config.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/tools/index.rst b/docs/python_api/tools/index.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/tools/preprocess/converters/index.rst b/docs/python_api/tools/preprocess/converters/index.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/tools/preprocess/datasets/index.rst b/docs/python_api/tools/preprocess/datasets/index.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/tools/preprocess/index.rst b/docs/python_api/tools/preprocess/index.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/tools/preprocess/partitioners/index.rst b/docs/python_api/tools/preprocess/partitioners/index.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/tools/preprocess/readers/index.rst b/docs/python_api/tools/preprocess/readers/index.rst old mode 100644 new mode 100755 diff --git a/docs/python_api/tools/preprocess/writers/index.rst b/docs/python_api/tools/preprocess/writers/index.rst old mode 100644 new mode 100755 diff --git a/docs/quickstart.rst b/docs/quickstart.rst old mode 100644 new mode 100755 diff --git a/examples/configuration/custom_lp.yaml b/examples/configuration/custom_lp.yaml old mode 100644 new mode 100755 diff --git a/examples/configuration/custom_nc.yaml b/examples/configuration/custom_nc.yaml old mode 100644 new mode 100755 diff --git a/examples/configuration/fb15k_237.yaml b/examples/configuration/fb15k_237.yaml old mode 100644 new mode 100755 diff --git a/examples/configuration/ogbn_arxiv.yaml b/examples/configuration/ogbn_arxiv.yaml old mode 100644 new mode 100755 diff --git a/examples/configuration/sakila.yaml b/examples/configuration/sakila.yaml old mode 100644 new mode 100755 diff --git a/examples/db2graph/dockerfile b/examples/db2graph/dockerfile old mode 100644 new mode 100755 diff --git a/examples/db2graph/run.sh b/examples/db2graph/run.sh old mode 100644 new mode 100755 diff --git a/examples/docker/README.md b/examples/docker/README.md old mode 100644 new mode 100755 diff --git a/examples/docker/cpu_ubuntu/dockerfile b/examples/docker/cpu_ubuntu/dockerfile old mode 100644 new mode 100755 diff --git a/examples/docker/gpu_ubuntu/dockerfile b/examples/docker/gpu_ubuntu/dockerfile old mode 100644 new mode 100755 diff --git a/examples/preprocessing/custom_dataset.py b/examples/preprocessing/custom_dataset.py old mode 100644 new mode 100755 diff --git a/examples/python/custom.py b/examples/python/custom.py old mode 100644 new mode 100755 diff --git a/examples/python/custom_lp.py b/examples/python/custom_lp.py old mode 100644 new mode 100755 diff --git a/examples/python/custom_nc_graphsage.py b/examples/python/custom_nc_graphsage.py old mode 100644 new mode 100755 diff --git a/examples/python/fb15k_237.py b/examples/python/fb15k_237.py old mode 100644 new mode 100755 diff --git a/examples/python/fb15k_237_gpu.py b/examples/python/fb15k_237_gpu.py old mode 100644 new mode 100755 diff --git a/examples/python/ogbn_arxiv_nc.py b/examples/python/ogbn_arxiv_nc.py old mode 100644 new mode 100755 diff --git a/pyproject.toml b/pyproject.toml old mode 100644 new mode 100755 diff --git a/setup.cfg b/setup.cfg old mode 100644 new mode 100755 diff --git a/setup.py b/setup.py old mode 100644 new mode 100755 index 26c62195..9149e643 --- a/setup.py +++ b/setup.py @@ -16,7 +16,7 @@ def __init__(self, name, sourcedir=""): class CMakeBuild(build_ext): def run(self): try: - _ = subprocess.check_output(["cmake", "--version"]) + _ = subprocess.run(["cmake", "--version"]) except OSError: raise RuntimeError( "CMake must be installed to build the following extensions: " @@ -69,8 +69,8 @@ def build_extension(self, ext): print(cmake_args) - subprocess.check_call(["cmake", ext.sourcedir] + cmake_args, cwd=self.build_temp, env=env) - subprocess.check_call(["cmake", "--build", ".", "--target", "bindings"] + build_args, cwd=self.build_temp) + subprocess.run(["cmake", ext.sourcedir] + cmake_args, cwd=self.build_temp, env=env) + subprocess.run(["cmake", "--build", ".", "--target", "bindings"] + build_args, cwd=self.build_temp) print() # Add an empty line for cleaner output diff --git a/simulator/__init__.py b/simulator/__init__.py old mode 100644 new mode 100755 diff --git a/simulator/configs/arvix_linear.json b/simulator/configs/arvix_linear.json old mode 100644 new mode 100755 diff --git a/simulator/configs/arvix_linear_in_mem.json b/simulator/configs/arvix_linear_in_mem.json old mode 100644 new mode 100755 diff --git a/simulator/configs/arvix_metis.json b/simulator/configs/arvix_metis.json old mode 100644 new mode 100755 diff --git a/simulator/configs/arvix_neighbors.json b/simulator/configs/arvix_neighbors.json old mode 100644 new mode 100755 diff --git a/simulator/configs/arvix_random.json b/simulator/configs/arvix_random.json old mode 100644 new mode 100755 diff --git a/simulator/configs/papers.json b/simulator/configs/papers.json old mode 100644 new mode 100755 diff --git a/simulator/configs/products_linear.json b/simulator/configs/products_linear.json old mode 100644 new mode 100755 index 380ee78c..00cd0968 --- a/simulator/configs/products_linear.json +++ b/simulator/configs/products_linear.json @@ -6,5 +6,6 @@ "feature_dimension" : 100, "feature_size" : "float32" }, - "sampling_depth" : 1 + "sampling_depth" : 1, + "batch_size" : 11 } \ No newline at end of file diff --git a/simulator/images/products_linear.png b/simulator/images/products_linear.png new file mode 100644 index 00000000..c60af98c Binary files /dev/null and b/simulator/images/products_linear.png differ diff --git a/simulator/main.py b/simulator/main.py old mode 100644 new mode 100755 index 3fd6402f..d4d7ea83 --- a/simulator/main.py +++ b/simulator/main.py @@ -3,6 +3,7 @@ import argparse import random import time +import datetime from src.dataset_loader import * from src.features_loader import * @@ -19,7 +20,7 @@ def read_arguments(): parser.add_argument("--config_file", type=str, help="The config file containing the details for the simulation") parser.add_argument("--save_path", required=True, type=str, help="The path to save the resulting image to") parser.add_argument("--graph_title", required=True, type=str, help="The title of the saved graph") - parser.add_argument("--num_nodes", default = -1, type = int, help = "The number of nodes we want in our sample") + parser.add_argument("--sample_percentage", default = 50, type = int, help = "The percentage of batches to sample to generate CDF") parser.add_argument("--log_rate", type=int, default=20, help="Log rate of the nodes processed") return parser.parse_args() @@ -30,37 +31,42 @@ def main(): # Create the loaders data_loader = DatasetLoader(config) - print(data_loader.get_num_nodes(), data_loader.get_num_edges()) - ''' features_loader = get_featurizer(data_loader, config["features_stats"]) sampler = SubgraphSampler(data_loader, features_loader, config) - print("Finished loading all objects") - # Perform sampling - nodes_to_sample = [i for i in range(data_loader.get_num_nodes())] - random.shuffle(nodes_to_sample) - if arguments.num_nodes > 0: - nodes_to_sample = nodes_to_sample[ : arguments.num_nodes] - log_rate = int(len(nodes_to_sample) / arguments.log_rate) + # Determine the sample nodes + sample_percentage = arguments.sample_percentage + all_nodes = data_loader.get_nodes_sorted_by_incoming() + batch_size = int(config["batch_size"]) + all_nodes = all_nodes.reshape((-1, batch_size)) + num_sample_nodes = int((sample_percentage * all_nodes.shape[0])/100.0) + batches_to_keep = np.random.choice(all_nodes.shape[0], num_sample_nodes, replace = False) + sample_nodes = all_nodes[batches_to_keep, : ] + print("Processing", sample_nodes.shape[0], "batches with each batch having", batch_size, "nodes") + + # Perform the sampling + log_rate = int(sample_nodes.shape[0]/arguments.log_rate) pages_loaded = [] - for curr_node in nodes_to_sample: - num_pages_read = sampler.perform_sampling_for_node(curr_node) - if num_pages_read > 0: - pages_loaded.append(num_pages_read) + for idx, curr_batch in enumerate(sample_nodes): + average_pages_loaded = sampler.perform_sampling_for_nodes(curr_batch) + if average_pages_loaded > 0: + pages_loaded.append(average_pages_loaded) - if len(pages_loaded) > 0 and len(pages_loaded) % log_rate == 0: - percentage_finished = (100.0 * len(pages_loaded)) / len(nodes_to_sample) + if idx > 0 and idx % log_rate == 0: + percentage_finished = (100.0 * idx)/sample_nodes.shape[0] print("Finished processing", round(percentage_finished), "percent of nodes") # Get the arguments to log - vals_to_log = dict() + total_time = time.time() - start_time + vals_to_log = { + "Total Processing Time" : str(datetime.timedelta(seconds = int(total_time))), + "Batch Size" : batch_size, + "Sample Percentage" : sample_percentage, + } + for curr_obj in [data_loader, features_loader, sampler]: vals_to_log.update(curr_obj.get_values_to_log()) - - # Log the time taken - total_time = time.time() - start_time - print("Processed all", len(nodes_to_sample), "nodes in", total_time, "seconds") # Save the histogram os.makedirs(os.path.dirname(arguments.save_path), exist_ok=True) @@ -73,7 +79,6 @@ def main(): "values_to_log": vals_to_log, } visualize_results(visualize_arguments) - ''' if __name__ == "__main__": main() \ No newline at end of file diff --git a/simulator/src/__init__.py b/simulator/src/__init__.py old mode 100644 new mode 100755 diff --git a/simulator/src/dataset_loader.py b/simulator/src/dataset_loader.py old mode 100644 new mode 100755 index 2d65e0b6..ebe02fa6 --- a/simulator/src/dataset_loader.py +++ b/simulator/src/dataset_loader.py @@ -2,8 +2,10 @@ import os import numpy as np import torch +import traceback from collections import defaultdict -import marius.storage +from marius.data import Batch, DENSEGraph, MariusGraph +from marius.data.samplers import LayeredNeighborSampler class DatasetLoader: SAVE_DIR = "datasets" @@ -33,47 +35,40 @@ def load_dataset(self): edges_flaten_arr = np.frombuffer(edges_bytes, dtype=np.int32) edges_arr = edges_flaten_arr.reshape((-1, 2)) - ''' # Create the graph - self.edge_list = torch.from_numpy(edges_arr) - self.nodes = torch.unique(self.edge_list) - self.current_graph = MariusGraph(self.edge_list, self.edge_list[torch.argsort(edge_list[:, -1])], self.get_num_nodes()) - self.sampler = LayeredNeighborSampler(full_graph, [-1 for _ in range(self.sampling_depth)]) - - # Neighbors cache - ''' + self.edge_list = torch.tensor(edges_arr, dtype = torch.int64) + self.total_nodes = torch.max(self.edge_list).item() + 1 + self.current_graph = MariusGraph(self.edge_list, self.edge_list[torch.argsort(self.edge_list[:, -1])], self.total_nodes) + self.sampler = LayeredNeighborSampler(self.current_graph, [-1 for _ in range(self.sampling_depth)]) def get_num_nodes(self): - return self.nodes.shape(0) - - def get_neigbhors_for_node(self, node_id, all_depths = False): - if node_id not in self.adjacency_map: - return [] - - return list(self.adjacency_map[node_id]) - - def get_incoming_neighbors(self, node_id): - if node_id not in self.num_incoming_edges: - return 0 - - return self.num_incoming_edges[node_id] + return self.total_nodes + + def get_neigbhors_for_nodes(self, nodes): + # Get the neighbors for the nodes + try: + nodes_to_sample = torch.tensor(nodes, dtype = torch.int64) + sampled_nodes = self.sampler.getNeighbors(nodes_to_sample) + sampled_nodes.performMap() + return sampled_nodes.getNeighborIDs(True, True).numpy() + except: + return np.array([]) def get_num_edges(self): - return self.edge_list.shape(0) + return self.edge_list.size(0) + + def get_nodes_sorted_by_incoming(self): + return torch.argsort(torch.bincount(self.edge_list[ : , 1]), descending=True).numpy() def get_average_neighbors(self): - neighbors_count = [] - for node_neighbors in self.adjacency_map.values(): - neighbors_count.append(len(node_neighbors)) - - return np.mean(np.array(neighbors_count)) + outgoing_nodes = self.edge_list[ : , 0] + outgoing_unique_nodes = torch.unique(outgoing_nodes) + return outgoing_nodes.size(0)/outgoing_unique_nodes.size(0) def get_average_incoming(self): - incoming_counts = [] - for num_incoming in self.num_incoming_edges.values(): - incoming_counts.append(num_incoming) - - return np.mean(np.array(incoming_counts)) + incoming_nodes = self.edge_list[ : , 1] + incoming_unique_nodes = torch.unique(incoming_nodes) + return incoming_nodes.size(0)/incoming_unique_nodes.size(0) def get_values_to_log(self): return { diff --git a/simulator/src/features_loader.py b/simulator/src/features_loader.py old mode 100644 new mode 100755 index 03cd7528..32e3cba4 --- a/simulator/src/features_loader.py +++ b/simulator/src/features_loader.py @@ -19,17 +19,19 @@ def __init__(self, data_loader, features_stat): def initialize(self): total_nodes = self.data_loader.get_num_nodes() - print("Total nodes of", total_nodes) self.total_pages = int(math.ceil(total_nodes / (1.0 * self.nodes_per_page))) - self.node_location_map = [i for i in range(self.total_pages)] + self.node_location_map = np.arange(total_nodes) if "feature_layout" in self.features_stat and self.features_stat["feature_layout"] == "random": random.shuffle(self.node_location_map) + self.node_to_page = (self.node_location_map/self.nodes_per_page).astype(int) def get_node_page(self, src_node, neighbor_node): - print("Querying for node", neighbor_node, "with total of", len(self.node_location_map), "nodes") start_node = int(self.node_location_map[neighbor_node] / self.nodes_per_page) curr_page_nodes = set(range(start_node, start_node + self.nodes_per_page)) return curr_page_nodes + + def num_pages_for_nodes(self, nodes): + return np.unique(self.node_to_page[nodes]).shape[0] def get_single_node_feature_size(self): return self.node_feature_size diff --git a/simulator/src/in_mem_storage.py b/simulator/src/in_mem_storage.py old mode 100644 new mode 100755 index 06163013..c3833a66 --- a/simulator/src/in_mem_storage.py +++ b/simulator/src/in_mem_storage.py @@ -8,13 +8,7 @@ def __init__(self, data_loader, percent_in_memory): nodes_in_mem = int((total_nodes * self.percent_in_memory) / 100.0) # Get the top nodes based on incoming neighbors - heap = [] - for node_id in range(total_nodes): - num_incoming = data_loader.get_incoming_neighbors(node_id) - heapq.heappush(heap, (num_incoming, node_id)) - - top_pairs = heapq.nlargest(nodes_in_mem, heap) - self.in_memory_nodes = set([pair[1] for pair in top_pairs]) + self.in_memory_nodes = data_loader.get_nodes_sorted_by_incoming()[ : nodes_in_mem] def node_in_mem_storage(self, node_id): return node_id in self.in_memory_nodes @@ -24,3 +18,6 @@ def get_percentage_in_mem(self): def in_mem_nodes_count(self): return len(self.in_memory_nodes) + + def remove_in_mem_nodes(self, nodes): + return np.setdiff1d(nodes, self.in_memory_nodes) diff --git a/simulator/src/sampler.py b/simulator/src/sampler.py old mode 100644 new mode 100755 index e0534257..a129bc4d --- a/simulator/src/sampler.py +++ b/simulator/src/sampler.py @@ -10,45 +10,22 @@ def __init__(self, data_loader, features_loader, config): self.in_memory_storage = None if "top_percent_in_mem" in config: self.in_memory_storage = InMemoryStorage(data_loader, config["top_percent_in_mem"]) - - self.nodes_loaded = set() - self.pages_loaded = 0 - self.depth = config["sampling_depth"] - - def reset(self): - self.nodes_loaded.clear() - self.pages_loaded = 0 - def is_node_in_mem(self, node_id): - return self.in_memory_storage is not None and self.in_memory_storage.node_in_mem_storage(node_id) - - def get_node_features(self, src_node, neighbor_node): - if neighbor_node in self.nodes_loaded or self.is_node_in_mem(neighbor_node): - return + def perform_sampling_for_nodes(self, nodes): + # Get the neighbors of the node + node_neigbhors = self.data_loader.get_neigbhors_for_nodes(nodes) + if node_neigbhors.shape[0] == 0: + return 0 - self.nodes_loaded.update(self.features_loader.get_node_page(src_node, neighbor_node)) - self.pages_loaded += 1 - - def perform_sampling_for_node(self, node_id): - # Read for this node - self.reset() - - # Perform bfs - curr_queue = [(node_id, node_id)] - curr_depth = 0 - while curr_depth <= self.depth and len(curr_queue) > 0: - # Get all of the nodes in the level - level_nodes = len(curr_queue) - for _ in range(level_nodes): - src_node, curr_node = curr_queue.pop(0) - self.get_node_features(src_node, curr_node) - for neighbor in self.data_loader.get_neigbhors_for_node(curr_node): - curr_queue.append((curr_node, neighbor)) - - # Move to the next level - curr_depth += 1 - - return self.pages_loaded + # Remove the in memory nodes + if self.in_memory_storage is not None: + node_neigbhors = self.in_memory_storage.remove_in_mem_nodes(node_neigbhors) + if node_neigbhors.shape[0] == 0: + return 0 + + # Get the average pages per node + total_pages_loaded = self.features_loader.num_pages_for_nodes(node_neigbhors) + return total_pages_loaded/nodes.shape[0] def get_values_to_log(self): values_to_return = {} diff --git a/simulator/src/visualizer.py b/simulator/src/visualizer.py old mode 100644 new mode 100755 diff --git a/simulator/temp.py b/simulator/temp.py old mode 100644 new mode 100755 diff --git a/src/__init__.py b/src/__init__.py old mode 100644 new mode 100755 diff --git a/src/cpp/cmake/FindSphinx.cmake b/src/cpp/cmake/FindSphinx.cmake old mode 100644 new mode 100755 diff --git a/src/cpp/include/common/datatypes.h b/src/cpp/include/common/datatypes.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/common/exception.h b/src/cpp/include/common/exception.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/common/pybind_headers.h b/src/cpp/include/common/pybind_headers.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/common/util.h b/src/cpp/include/common/util.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/configuration/config.h b/src/cpp/include/configuration/config.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/configuration/constants.h b/src/cpp/include/configuration/constants.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/configuration/options.h b/src/cpp/include/configuration/options.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/configuration/util.h b/src/cpp/include/configuration/util.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/data/batch.h b/src/cpp/include/data/batch.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/data/dataloader.h b/src/cpp/include/data/dataloader.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/data/graph.h b/src/cpp/include/data/graph.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/data/ordering.h b/src/cpp/include/data/ordering.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/data/samplers/edge.h b/src/cpp/include/data/samplers/edge.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/data/samplers/negative.h b/src/cpp/include/data/samplers/negative.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/data/samplers/neighbor.h b/src/cpp/include/data/samplers/neighbor.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/marius.h b/src/cpp/include/marius.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/nn/activation.h b/src/cpp/include/nn/activation.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/nn/decoders/decoder.h b/src/cpp/include/nn/decoders/decoder.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/nn/decoders/edge/comparators.h b/src/cpp/include/nn/decoders/edge/comparators.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/nn/decoders/edge/complex.h b/src/cpp/include/nn/decoders/edge/complex.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/nn/decoders/edge/decoder_methods.h b/src/cpp/include/nn/decoders/edge/decoder_methods.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/nn/decoders/edge/distmult.h b/src/cpp/include/nn/decoders/edge/distmult.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/nn/decoders/edge/edge_decoder.h b/src/cpp/include/nn/decoders/edge/edge_decoder.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/nn/decoders/edge/relation_operators.h b/src/cpp/include/nn/decoders/edge/relation_operators.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/nn/decoders/edge/transe.h b/src/cpp/include/nn/decoders/edge/transe.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/nn/decoders/node/node_decoder.h b/src/cpp/include/nn/decoders/node/node_decoder.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/nn/decoders/node/noop_node_decoder.h b/src/cpp/include/nn/decoders/node/noop_node_decoder.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/nn/encoders/encoder.h b/src/cpp/include/nn/encoders/encoder.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/nn/initialization.h b/src/cpp/include/nn/initialization.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/nn/layers/embedding/embedding.h b/src/cpp/include/nn/layers/embedding/embedding.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/nn/layers/feature/feature.h b/src/cpp/include/nn/layers/feature/feature.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/nn/layers/gnn/gat_layer.h b/src/cpp/include/nn/layers/gnn/gat_layer.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/nn/layers/gnn/gcn_layer.h b/src/cpp/include/nn/layers/gnn/gcn_layer.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/nn/layers/gnn/gnn_layer.h b/src/cpp/include/nn/layers/gnn/gnn_layer.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/nn/layers/gnn/graph_sage_layer.h b/src/cpp/include/nn/layers/gnn/graph_sage_layer.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/nn/layers/gnn/layer_helpers.h b/src/cpp/include/nn/layers/gnn/layer_helpers.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/nn/layers/gnn/rgcn_layer.h b/src/cpp/include/nn/layers/gnn/rgcn_layer.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/nn/layers/layer.h b/src/cpp/include/nn/layers/layer.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/nn/layers/reduction/concat.h b/src/cpp/include/nn/layers/reduction/concat.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/nn/layers/reduction/linear.h b/src/cpp/include/nn/layers/reduction/linear.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/nn/layers/reduction/reduction_layer.h b/src/cpp/include/nn/layers/reduction/reduction_layer.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/nn/loss.h b/src/cpp/include/nn/loss.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/nn/model.h b/src/cpp/include/nn/model.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/nn/model_helpers.h b/src/cpp/include/nn/model_helpers.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/nn/optim.h b/src/cpp/include/nn/optim.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/nn/regularizer.h b/src/cpp/include/nn/regularizer.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/pipeline/evaluator.h b/src/cpp/include/pipeline/evaluator.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/pipeline/graph_encoder.h b/src/cpp/include/pipeline/graph_encoder.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/pipeline/pipeline.h b/src/cpp/include/pipeline/pipeline.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/pipeline/pipeline_constants.h b/src/cpp/include/pipeline/pipeline_constants.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/pipeline/pipeline_cpu.h b/src/cpp/include/pipeline/pipeline_cpu.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/pipeline/pipeline_gpu.h b/src/cpp/include/pipeline/pipeline_gpu.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/pipeline/pipeline_monitor.h b/src/cpp/include/pipeline/pipeline_monitor.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/pipeline/queue.h b/src/cpp/include/pipeline/queue.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/pipeline/trainer.h b/src/cpp/include/pipeline/trainer.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/reporting/logger.h b/src/cpp/include/reporting/logger.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/reporting/reporting.h b/src/cpp/include/reporting/reporting.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/storage/buffer.h b/src/cpp/include/storage/buffer.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/storage/checkpointer.h b/src/cpp/include/storage/checkpointer.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/storage/graph_storage.h b/src/cpp/include/storage/graph_storage.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/storage/io.h b/src/cpp/include/storage/io.h old mode 100644 new mode 100755 diff --git a/src/cpp/include/storage/storage.h b/src/cpp/include/storage/storage.h old mode 100644 new mode 100755 diff --git a/src/cpp/python_bindings/configuration/config_wrap.cpp b/src/cpp/python_bindings/configuration/config_wrap.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/python_bindings/configuration/options_wrap.cpp b/src/cpp/python_bindings/configuration/options_wrap.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/python_bindings/configuration/wrap.cpp b/src/cpp/python_bindings/configuration/wrap.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/python_bindings/data/batch_wrap.cpp b/src/cpp/python_bindings/data/batch_wrap.cpp deleted file mode 100644 index b51afb87..00000000 --- a/src/cpp/python_bindings/data/batch_wrap.cpp +++ /dev/null @@ -1,55 +0,0 @@ -#include "common/pybind_headers.h" -#include "data/batch.h" - -void init_batch(py::module &m) { - py::enum_(m, "BatchStatus") - .value("Waiting", BatchStatus::Waiting) - .value("AccumulatedIndices", BatchStatus::AccumulatedIndices) - .value("LoadedEmbeddings", BatchStatus::LoadedEmbeddings) - .value("TransferredToDevice", BatchStatus::TransferredToDevice) - .value("PreparedForCompute", BatchStatus::PreparedForCompute) - .value("ComputedGradients", BatchStatus::ComputedGradients) - .value("AccumulatedGradients", BatchStatus::AccumulatedGradients) - .value("TransferredToHost", BatchStatus::TransferredToHost) - .value("Done", BatchStatus::Done); - - py::class_>(m, "Batch", py::dynamic_attr()) - .def_readwrite("batch_id", &Batch::batch_id_) - .def_readwrite("start_idx", &Batch::start_idx_) - .def_readwrite("batch_size", &Batch::batch_size_) - .def_readwrite("train", &Batch::train_) - .def_readwrite("device_id", &Batch::device_id_) - - .def_readwrite("status", &Batch::status_) - - .def_readwrite("root_node_indices", &Batch::root_node_indices_) - .def_readwrite("unique_node_indices", &Batch::unique_node_indices_) - .def_readwrite("node_embeddings", &Batch::node_embeddings_) - .def_readwrite("node_gradients", &Batch::node_gradients_) - .def_readwrite("node_embeddings_state", &Batch::node_embeddings_state_) - .def_readwrite("node_state_update", &Batch::node_state_update_) - - .def_readwrite("node_features", &Batch::node_features_) - .def_readwrite("node_labels", &Batch::node_labels_) - - .def_readwrite("src_neg_indices_mapping", &Batch::src_neg_indices_mapping_) - .def_readwrite("dst_neg_indices_mapping", &Batch::dst_neg_indices_mapping_) - - .def_readwrite("edges", &Batch::edges_) - - .def_readwrite("dense_graph", &Batch::dense_graph_) - .def_readwrite("encoded_uniques", &Batch::encoded_uniques_) - - .def_readwrite("neg_edges", &Batch::neg_edges_) - .def_readwrite("rel_neg_indices", &Batch::rel_neg_indices_) - .def_readwrite("src_neg_indices", &Batch::src_neg_indices_) - .def_readwrite("dst_neg_indices", &Batch::dst_neg_indices_) - .def_readwrite("src_neg_filter", &Batch::src_neg_filter_) - .def_readwrite("dst_neg_filter", &Batch::dst_neg_filter_) - - .def(py::init(), py::arg("train")) - .def("to", &Batch::to, py::arg("device"), py::arg("stream") = nullptr) - .def("accumulateGradients", &Batch::accumulateGradients, py::arg("learning_rate")) - .def("embeddingsToHost", &Batch::embeddingsToHost) - .def("clear", &Batch::clear); -} \ No newline at end of file diff --git a/src/cpp/python_bindings/data/dataloader_wrap.cpp b/src/cpp/python_bindings/data/dataloader_wrap.cpp deleted file mode 100644 index ba7de425..00000000 --- a/src/cpp/python_bindings/data/dataloader_wrap.cpp +++ /dev/null @@ -1,182 +0,0 @@ -#include "common/pybind_headers.h" -#include "data/dataloader.h" - -void init_dataloader(py::module &m) { - py::class_>(m, "DataLoader", py::dynamic_attr()) - .def_readwrite("graph_storage", &DataLoader::graph_storage_) - .def_readwrite("edge_sampler", &DataLoader::edge_sampler_) - .def_readwrite("negative_sampler", &DataLoader::negative_sampler_) - .def_readwrite("neighbor_sampler", &DataLoader::neighbor_sampler_) - .def_readwrite("training_config", &DataLoader::training_config_) - .def_readwrite("evaluation_config", &DataLoader::evaluation_config_) - .def_readwrite("train", &DataLoader::train_) - .def_readwrite("epochs_processed", &DataLoader::epochs_processed_) - .def_readwrite("batches_processed", &DataLoader::batches_processed_) - .def_readwrite("current_edge", &DataLoader::current_edge_) - .def_readwrite("batches", &DataLoader::batches_) - .def_readwrite("batch_id_offset", &DataLoader::batch_id_offset_) - // .def_readwrite("batch_iterator", &DataLoader::batch_iterator_) # TODO Iterator needs bindings - .def_readwrite("batches_left", &DataLoader::batches_left_) - .def_readwrite("batches_processed", &DataLoader::total_batches_processed_) - .def_readwrite("all_read", &DataLoader::all_read_) - .def_readwrite("edge_buckets_per_buffer", &DataLoader::edge_buckets_per_buffer_) - .def_readwrite("node_ids_per_buffer", &DataLoader::node_ids_per_buffer_) - .def_readwrite("training_neighbor_sampler", &DataLoader::training_neighbor_sampler_) - .def_readwrite("evaluation_neighbor_sampler", &DataLoader::evaluation_neighbor_sampler_) - .def_readwrite("training_negative_sampler", &DataLoader::training_negative_sampler_) - .def_readwrite("evaluation_negative_sampler", &DataLoader::evaluation_negative_sampler_) - - .def(py::init([](shared_ptr graph_storage, std::string learning_task, shared_ptr training_config, - shared_ptr evaluation_config, shared_ptr encoder_config) { - LearningTask task = getLearningTask(learning_task); - return std::make_shared(graph_storage, task, training_config, evaluation_config, encoder_config); - }), - py::arg("graph_storage"), py::arg("learning_task"), py::arg("training_config"), py::arg("evaluation_config"), py::arg("encoder_config")) - - .def(py::init([](shared_ptr graph_storage, std::string learning_task, int batch_size, shared_ptr neg_sampler, - shared_ptr nbr_sampler, bool train) { - LearningTask task = getLearningTask(learning_task); - - if (task == LearningTask::LINK_PREDICTION) { - if (train) { - graph_storage->storage_ptrs_.train_edges = graph_storage->storage_ptrs_.edges; - } else { - graph_storage->storage_ptrs_.test_edges = graph_storage->storage_ptrs_.edges; - } - } else if (task == LearningTask::NODE_CLASSIFICATION) { - if (graph_storage->storage_ptrs_.nodes == nullptr) { - throw MariusRuntimeException("Node ids must be provided for node classification"); - } - - if (train) { - if (graph_storage->storage_ptrs_.node_labels == nullptr) { - throw MariusRuntimeException("Labels for the nodes must be provided when training with node classification"); - } - graph_storage->storage_ptrs_.train_nodes = graph_storage->storage_ptrs_.nodes; - } else { - graph_storage->storage_ptrs_.test_nodes = graph_storage->storage_ptrs_.nodes; - } - } - - return std::make_shared(graph_storage, task, batch_size, neg_sampler, nbr_sampler, train); - }), - py::arg("graph_storage"), py::arg("learning_task"), py::arg("batch_size") = 1000, py::arg("neg_sampler") = nullptr, - py::arg("nbr_sampler") = nullptr, py::arg("train") = false) - - .def(py::init([](torch::optional edges, std::string learning_task, torch::optional nodes, - torch::optional node_features, torch::optional node_embeddings, - torch::optional node_optimizer_state, torch::optional node_labels, - torch::optional train_edges, int batch_size, shared_ptr neg_sampler, - shared_ptr nbr_sampler, std::vector filter_edges, bool train) { - shared_ptr edges_s = nullptr; - shared_ptr nodes_s = nullptr; - shared_ptr node_features_s = nullptr; - shared_ptr node_embeddings_s = nullptr; - shared_ptr node_optimizer_state_s = nullptr; - shared_ptr node_labels_s = nullptr; - - LearningTask task = getLearningTask(learning_task); - - if (edges.has_value()) { - edges_s = std::make_shared(edges.value()); - } else { - throw UndefinedTensorException(); - } - - if (nodes.has_value()) { - nodes_s = std::make_shared(nodes.value()); - } else { - if (task == LearningTask::NODE_CLASSIFICATION) { - throw MariusRuntimeException("Tensor of node ids must be provided for node classification"); - } - } - - if (node_features.has_value()) { - node_features_s = std::make_shared(node_features.value()); - } - - if (node_embeddings.has_value()) { - node_embeddings_s = std::make_shared(node_embeddings.value()); - } - - if (node_optimizer_state.has_value()) { - node_optimizer_state_s = std::make_shared(node_optimizer_state.value()); - } else { - if (train && node_embeddings_s != nullptr) { - OptimizerState emb_state = torch::zeros_like(node_embeddings.value()); - node_optimizer_state_s = std::make_shared(emb_state); - } - } - - if (node_labels.has_value()) { - node_labels_s = std::make_shared(node_labels.value()); - } else { - if (task == LearningTask::NODE_CLASSIFICATION && train) { - throw MariusRuntimeException("Labels for the nodes must be provided when training with node classification"); - } - } - - GraphModelStoragePtrs ptrs; - ptrs.edges = edges_s; - ptrs.nodes = nodes_s; - ptrs.node_features = node_features_s; - ptrs.node_embeddings = node_embeddings_s; - ptrs.node_optimizer_state = node_optimizer_state_s; - ptrs.node_labels = node_labels_s; - - for (auto f_edges : filter_edges) { - ptrs.filter_edges.emplace_back(std::make_shared(f_edges)); - } - - if (task == LearningTask::LINK_PREDICTION) { - if (train) { - ptrs.train_edges = ptrs.edges; - } else { - ptrs.test_edges = ptrs.edges; - if (train_edges.has_value()) { - ptrs.train_edges = std::make_shared(train_edges.value()); - } - } - } else if (task == LearningTask::NODE_CLASSIFICATION) { - if (train) { - ptrs.train_nodes = ptrs.nodes; - } else { - ptrs.test_nodes = ptrs.nodes; - } - } - - auto gms = std::make_shared(ptrs, false); - return std::make_shared(gms, task, batch_size, neg_sampler, nbr_sampler, train); - }), - py::arg("edges"), py::arg("learning_task"), py::arg("nodes") = nullptr, py::arg("node_features") = nullptr, py::arg("node_embeddings") = nullptr, - py::arg("node_optim_state") = nullptr, py::arg("node_labels") = nullptr, py::arg("train_edges") = nullptr, py::arg("batch_size") = 1000, - py::arg("neg_sampler") = nullptr, py::arg("nbr_sampler") = nullptr, py::arg("filter_edges") = std::vector(), - py::arg("train") = false) - - .def("setBufferOrdering", &DataLoader::setBufferOrdering) - .def("setActiveEdges", &DataLoader::setActiveEdges) - .def("setActiveNodes", &DataLoader::setActiveNodes) - .def("initializeBatches", &DataLoader::initializeBatches, py::arg("prepare_encode") = false) - .def("clearBatches", &DataLoader::clearBatches) - .def("hasNextBatch", &DataLoader::hasNextBatch) - .def("getNextBatch", &DataLoader::getNextBatch, py::return_value_policy::reference) - .def("finishedBatch", &DataLoader::finishedBatch) - .def("getBatch", &DataLoader::getBatch, py::arg("device") = py::none(), py::arg("perform_map") = false, py::arg("worker_id") = 0, - py::return_value_policy::reference) - .def("edgeSample", &DataLoader::edgeSample, py::arg("batch"), py::arg("worker_id") = 0) - .def("nodeSample", &DataLoader::nodeSample, py::arg("batch"), py::arg("worker_id") = 0) - .def("loadCPUParameters", &DataLoader::loadCPUParameters, py::arg("batch")) - .def("loadGPUParameters", &DataLoader::loadGPUParameters, py::arg("batch")) - .def("updateEmbeddings", &DataLoader::updateEmbeddings, py::arg("batch"), py::arg("gpu") = false) - .def("nextEpoch", &DataLoader::nextEpoch) - .def("loadStorage", &DataLoader::loadStorage) - .def("epochComplete", &DataLoader::epochComplete) - .def("unloadStorage", &DataLoader::unloadStorage, py::arg("write") = false) - .def("getNumEdges", &DataLoader::getNumEdges) - .def("getEpochsProcessed", &DataLoader::getEpochsProcessed) - .def("getBatchesProcessed", &DataLoader::getBatchesProcessed) - .def("isTrain", &DataLoader::isTrain) - .def("setTrainSet", &DataLoader::setTrainSet) - .def("setValidationSet", &DataLoader::setValidationSet) - .def("setTestSet", &DataLoader::setTestSet); -} \ No newline at end of file diff --git a/src/cpp/python_bindings/data/graph_wrap.cpp b/src/cpp/python_bindings/data/graph_wrap.cpp deleted file mode 100644 index 74f49f80..00000000 --- a/src/cpp/python_bindings/data/graph_wrap.cpp +++ /dev/null @@ -1,49 +0,0 @@ -#include "common/pybind_headers.h" -#include "data/graph.h" - -void init_graph(py::module &m) { - py::class_>(m, "MariusGraph") - .def_readwrite("src_sorted_edges", &MariusGraph::src_sorted_edges_) - .def_readwrite("dst_sorted_edges", &MariusGraph::dst_sorted_edges_) - .def_readwrite("active_in_memory_subgraph", &MariusGraph::active_in_memory_subgraph_) - .def_readwrite("num_nodes_in_memory", &MariusGraph::num_nodes_in_memory_) - .def_readwrite("node_ids", &MariusGraph::node_ids_) - .def_readwrite("out_sorted_uniques", &MariusGraph::out_sorted_uniques_) - .def_readwrite("out_offsets", &MariusGraph::out_offsets_) - .def_readwrite("out_num_neighbors", &MariusGraph::out_num_neighbors_) - .def_readwrite("in_sorted_uniques", &MariusGraph::in_sorted_uniques_) - .def_readwrite("in_offsets", &MariusGraph::in_offsets_) - .def_readwrite("in_num_neighbors", &MariusGraph::in_num_neighbors_) - .def_readwrite("max_out_num_neighbors_", &MariusGraph::max_out_num_neighbors_) - .def_readwrite("max_in_num_neighbors_", &MariusGraph::max_in_num_neighbors_) - .def(py::init<>()) - .def(py::init(), py::arg("src_sorted_edges"), py::arg("dst_sorted_edges"), py::arg("num_nodes_in_memory")) - .def("getEdges", &MariusGraph::getEdges, py::arg("incoming") = true) - .def("getRelationIDs", &MariusGraph::getRelationIDs, py::arg("incoming") = true) - .def("getNeighborOffsets", &MariusGraph::getNeighborOffsets, py::arg("incoming") = true) - .def("getNumNeighbors", &MariusGraph::getNumNeighbors, py::arg("incoming") = true) - .def("getNeighborsForNodeIds", &MariusGraph::getNeighborsForNodeIds, py::arg("node_ids"), py::arg("incoming"), py::arg("neighbor_sampling_layer"), - py::arg("max_neighbors_size"), py::arg("rate")) - .def("clear", &MariusGraph::clear) - .def("to", &MariusGraph::to, py::arg("device")); - - py::class_>(m, "DENSEGraph") - .def_readwrite("hop_offsets", &DENSEGraph::hop_offsets_) - .def_readwrite("in_neighbors", &DENSEGraph::in_neighbors_mapping_, "description of the variable") - .def_readwrite("out_neighbors", &DENSEGraph::out_neighbors_mapping_) - .def_readwrite("in_neighbors_vec", &DENSEGraph::in_neighbors_vec_) - .def_readwrite("out_neighbors_vec", &DENSEGraph::out_neighbors_vec_) - .def_readwrite("node_properties", &DENSEGraph::node_properties_) - .def_readwrite("num_nodes_in_memory", &DENSEGraph::num_nodes_in_memory_) - .def(py::init<>()) - .def(py::init, Indices, Indices, std::vector, Indices, int>(), - py::arg("hop_offsets"), py::arg("node_ids"), py::arg("in_offsets"), py::arg("in_neighbors_vec"), py::arg("in_neighbors"), py::arg("out_offsets"), - py::arg("out_neighbors_vec"), py::arg("out_neighbors"), py::arg("num_nodes_in_memory")) - .def("prepareForNextLayer", &DENSEGraph::prepareForNextLayer) - .def("getNeighborIDs", &DENSEGraph::getNeighborIDs, py::arg("incoming") = true, py::arg("global_ids") = false) - .def("getLayerOffset", &DENSEGraph::getLayerOffset) - .def("performMap", &DENSEGraph::performMap) - .def("setNodeProperties", &DENSEGraph::setNodeProperties, py::arg("node_properties")) - .def("clear", &DENSEGraph::clear) - .def("to", &DENSEGraph::to, py::arg("device"), py::arg("compute_stream") = nullptr, py::arg("transfer_stream") = nullptr); -} \ No newline at end of file diff --git a/src/cpp/python_bindings/data/samplers/edge_wrap.cpp b/src/cpp/python_bindings/data/samplers/edge_wrap.cpp deleted file mode 100644 index 33aaf966..00000000 --- a/src/cpp/python_bindings/data/samplers/edge_wrap.cpp +++ /dev/null @@ -1,22 +0,0 @@ -// -// Created by Jason Mohoney on 2/14/22. -// - -#include "common/pybind_headers.h" -#include "data/samplers/edge.h" - -class PyEdgeSampler : EdgeSampler { - public: - using EdgeSampler::EdgeSampler; - EdgeList getEdges(shared_ptr batch) override { PYBIND11_OVERRIDE_PURE_NAME(EdgeList, EdgeSampler, "getEdges", getEdges, batch); } -}; - -void init_edge_samplers(py::module &m) { - py::class_>(m, "EdgeSampler") - .def_readwrite("graph_storage", &EdgeSampler::graph_storage_) - .def("getEdges", &EdgeSampler::getEdges, py::arg("batch")); - - py::class_>(m, "RandomEdgeSampler") - .def_readwrite("without_replacement", &RandomEdgeSampler::without_replacement_) - .def(py::init, bool>(), py::arg("graph_storage"), py::arg("without_replacement") = true); -} \ No newline at end of file diff --git a/src/cpp/python_bindings/data/samplers/negative_wrap.cpp b/src/cpp/python_bindings/data/samplers/negative_wrap.cpp deleted file mode 100644 index 928b1e60..00000000 --- a/src/cpp/python_bindings/data/samplers/negative_wrap.cpp +++ /dev/null @@ -1,32 +0,0 @@ -// -// Created by Jason Mohoney on 2/14/22. -// - -#include "common/pybind_headers.h" -#include "data/samplers/negative.h" - -class PyNegativeSampler : NegativeSampler { - public: - using NegativeSampler::NegativeSampler; - using ReturnTensorTuple = std::tuple; - std::tuple getNegatives(shared_ptr graph, torch::Tensor edges, bool inverse) override { - PYBIND11_OVERRIDE_PURE_NAME(ReturnTensorTuple, NegativeSampler, "getNegatives", getNegatives, graph, edges, inverse); - } -}; - -void init_neg_samplers(py::module &m) { - py::class_>(m, "NegativeSampler") - .def("getNegatives", &NegativeSampler::getNegatives, py::arg("graph"), py::arg("edges") = torch::Tensor(), py::arg("inverse") = false); - - py::class_>(m, "CorruptNodeNegativeSampler") - .def_readwrite("num_chunks", &CorruptNodeNegativeSampler::num_chunks_) - .def_readwrite("num_negatives", &CorruptNodeNegativeSampler::num_negatives_) - .def_readwrite("degree_fraction", &CorruptNodeNegativeSampler::degree_fraction_) - .def_readwrite("filtered", &CorruptNodeNegativeSampler::filtered_) - .def(py::init([](int num_chunks, int num_negatives, float degree_fraction, bool filtered, string filter_mode) { - auto deg_filter_mode = getLocalFilterMode(filter_mode); - return std::make_shared(num_chunks, num_negatives, degree_fraction, filtered, deg_filter_mode); - }), - py::arg("num_chunks") = 1, py::arg("num_negatives") = 500, py::arg("degree_fraction") = 0.0, py::arg("filtered") = false, - py::arg("local_filter_mode") = "deg"); -} diff --git a/src/cpp/python_bindings/data/samplers/neighbor_wrap.cpp b/src/cpp/python_bindings/data/samplers/neighbor_wrap.cpp deleted file mode 100644 index 6e170ec6..00000000 --- a/src/cpp/python_bindings/data/samplers/neighbor_wrap.cpp +++ /dev/null @@ -1,85 +0,0 @@ -// -// Created by Jason Mohoney on 2/14/22. -// - -#include "common/pybind_headers.h" -#include "data/samplers/neighbor.h" - -class PyNeighborSampler : NeighborSampler { - public: - using NeighborSampler::NeighborSampler; - DENSEGraph getNeighbors(torch::Tensor node_ids, shared_ptr graph, int worker_id) override { - PYBIND11_OVERRIDE_PURE_NAME(DENSEGraph, NeighborSampler, "getNeighbors", getNeighbors, node_ids, graph, worker_id); - } -}; - -void init_neighbor_samplers(py::module &m) { - py::class_>(m, "NeighborSampler") - .def_readwrite("storage", &NeighborSampler::storage_) - .def("getNeighbors", &NeighborSampler::getNeighbors, py::arg("node_ids"), py::arg("graph") = nullptr, py::arg("worker_id") = 0); - - py::class_>(m, "LayeredNeighborSampler") - .def_readwrite("sampling_layers", &LayeredNeighborSampler::sampling_layers_) - - .def(py::init([](shared_ptr storage, std::vector num_neighbors, bool use_hashmap_sets) { - std::vector> sampling_layers; - for (auto n : num_neighbors) { - shared_ptr ptr = std::make_shared(); - if (n == -1) { - ptr->type = NeighborSamplingLayer::ALL; - ptr->options = std::make_shared(); - } else { - ptr->type = NeighborSamplingLayer::UNIFORM; - auto opts = std::make_shared(); - opts->max_neighbors = n; - ptr->options = opts; - } - ptr->use_hashmap_sets = use_hashmap_sets; - sampling_layers.emplace_back(ptr); - } - return std::make_shared(storage, sampling_layers); - }), - py::arg("storage"), py::arg("num_neighbors"), py::arg("use_hashmap_sets") = false) - - .def(py::init([](shared_ptr graph, std::vector num_neighbors, bool use_hashmap_sets) { - std::vector> sampling_layers; - - for (auto n : num_neighbors) { - shared_ptr ptr = std::make_shared(); - if (n == -1) { - ptr->type = NeighborSamplingLayer::ALL; - ptr->options = std::make_shared(); - } else { - ptr->type = NeighborSamplingLayer::UNIFORM; - auto opts = std::make_shared(); - opts->max_neighbors = n; - ptr->options = opts; - } - ptr->use_hashmap_sets = use_hashmap_sets; - sampling_layers.emplace_back(ptr); - } - return std::make_shared(graph, sampling_layers); - }), - py::arg("graph"), py::arg("num_neighbors"), py::arg("use_hashmap_sets") = false) - - .def(py::init([](std::vector num_neighbors, bool use_hashmap_sets) { - std::vector> sampling_layers; - - for (auto n : num_neighbors) { - shared_ptr ptr = std::make_shared(); - if (n == -1) { - ptr->type = NeighborSamplingLayer::ALL; - ptr->options = std::make_shared(); - } else { - ptr->type = NeighborSamplingLayer::UNIFORM; - auto opts = std::make_shared(); - opts->max_neighbors = n; - ptr->options = opts; - } - ptr->use_hashmap_sets = use_hashmap_sets; - sampling_layers.emplace_back(ptr); - } - return std::make_shared(sampling_layers); - }), - py::arg("num_neighbors"), py::arg("use_hashmap_sets") = false); -} diff --git a/src/cpp/python_bindings/data/wrap.cpp b/src/cpp/python_bindings/data/wrap.cpp deleted file mode 100644 index f7cd4167..00000000 --- a/src/cpp/python_bindings/data/wrap.cpp +++ /dev/null @@ -1,29 +0,0 @@ -#include "common/pybind_headers.h" - -// data -void init_batch(py::module &); -void init_dataloader(py::module &); -void init_graph(py::module &); - -// data/samplers -void init_edge_samplers(py::module &); -void init_neg_samplers(py::module &); -void init_neighbor_samplers(py::module &); - -PYBIND11_MODULE(_data, m) { - m.doc() = "Objects for in memory processing and sampling"; - - // data/samplers - auto samplers_m = m.def_submodule("samplers"); - - samplers_m.doc() = "Graph Samplers"; - - init_edge_samplers(samplers_m); - init_neg_samplers(samplers_m); - init_neighbor_samplers(samplers_m); - - // data - init_batch(m); - init_dataloader(m); - init_graph(m); -} diff --git a/src/cpp/python_bindings/manager/marius_wrap.cpp b/src/cpp/python_bindings/manager/marius_wrap.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/python_bindings/manager/wrap.cpp b/src/cpp/python_bindings/manager/wrap.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/python_bindings/nn/activation_wrap.cpp b/src/cpp/python_bindings/nn/activation_wrap.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/python_bindings/nn/decoders/decoder_wrap.cpp b/src/cpp/python_bindings/nn/decoders/decoder_wrap.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/python_bindings/nn/decoders/edge/comparators_wrap.cpp b/src/cpp/python_bindings/nn/decoders/edge/comparators_wrap.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/python_bindings/nn/decoders/edge/complex_wrap.cpp b/src/cpp/python_bindings/nn/decoders/edge/complex_wrap.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/python_bindings/nn/decoders/edge/distmult_wrap.cpp b/src/cpp/python_bindings/nn/decoders/edge/distmult_wrap.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/python_bindings/nn/decoders/edge/edge_decoder_wrap.cpp b/src/cpp/python_bindings/nn/decoders/edge/edge_decoder_wrap.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/python_bindings/nn/decoders/edge/relation_operators_wrap.cpp b/src/cpp/python_bindings/nn/decoders/edge/relation_operators_wrap.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/python_bindings/nn/decoders/edge/transe_wrap.cpp b/src/cpp/python_bindings/nn/decoders/edge/transe_wrap.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/python_bindings/nn/decoders/node/node_decoder_wrap.cpp b/src/cpp/python_bindings/nn/decoders/node/node_decoder_wrap.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/python_bindings/nn/decoders/node/noop_node_decoder.cpp b/src/cpp/python_bindings/nn/decoders/node/noop_node_decoder.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/python_bindings/nn/encoders/encoder_wrap.cpp b/src/cpp/python_bindings/nn/encoders/encoder_wrap.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/python_bindings/nn/initialization_wrap.cpp b/src/cpp/python_bindings/nn/initialization_wrap.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/python_bindings/nn/layers/embedding/embedding_wrap.cpp b/src/cpp/python_bindings/nn/layers/embedding/embedding_wrap.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/python_bindings/nn/layers/feature/feature_wrap.cpp b/src/cpp/python_bindings/nn/layers/feature/feature_wrap.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/python_bindings/nn/layers/gnn/gat_layer_wrap.cpp b/src/cpp/python_bindings/nn/layers/gnn/gat_layer_wrap.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/python_bindings/nn/layers/gnn/gcn_layer_wrap.cpp b/src/cpp/python_bindings/nn/layers/gnn/gcn_layer_wrap.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/python_bindings/nn/layers/gnn/gnn_layer_wrap.cpp b/src/cpp/python_bindings/nn/layers/gnn/gnn_layer_wrap.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/python_bindings/nn/layers/gnn/graph_sage_layer_wrap.cpp b/src/cpp/python_bindings/nn/layers/gnn/graph_sage_layer_wrap.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/python_bindings/nn/layers/gnn/layer_helpers_wrap.cpp b/src/cpp/python_bindings/nn/layers/gnn/layer_helpers_wrap.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/python_bindings/nn/layers/gnn/rgcn_layer_wrap.cpp b/src/cpp/python_bindings/nn/layers/gnn/rgcn_layer_wrap.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/python_bindings/nn/layers/layer_wrap.cpp b/src/cpp/python_bindings/nn/layers/layer_wrap.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/python_bindings/nn/layers/reduction/concat_wrap.cpp b/src/cpp/python_bindings/nn/layers/reduction/concat_wrap.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/python_bindings/nn/layers/reduction/linear_wrap.cpp b/src/cpp/python_bindings/nn/layers/reduction/linear_wrap.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/python_bindings/nn/layers/reduction/reduction_layer_wrap.cpp b/src/cpp/python_bindings/nn/layers/reduction/reduction_layer_wrap.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/python_bindings/nn/loss_wrap.cpp b/src/cpp/python_bindings/nn/loss_wrap.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/python_bindings/nn/model_wrap.cpp b/src/cpp/python_bindings/nn/model_wrap.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/python_bindings/nn/optim_wrap.cpp b/src/cpp/python_bindings/nn/optim_wrap.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/python_bindings/nn/regularizer_wrap.cpp b/src/cpp/python_bindings/nn/regularizer_wrap.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/python_bindings/nn/wrap.cpp b/src/cpp/python_bindings/nn/wrap.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/python_bindings/pipeline/evaluator_wrap.cpp b/src/cpp/python_bindings/pipeline/evaluator_wrap.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/python_bindings/pipeline/graph_encoder_wrap.cpp b/src/cpp/python_bindings/pipeline/graph_encoder_wrap.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/python_bindings/pipeline/trainer_wrap.cpp b/src/cpp/python_bindings/pipeline/trainer_wrap.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/python_bindings/pipeline/wrap.cpp b/src/cpp/python_bindings/pipeline/wrap.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/python_bindings/reporting/reporting_wrap.cpp b/src/cpp/python_bindings/reporting/reporting_wrap.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/python_bindings/reporting/wrap.cpp b/src/cpp/python_bindings/reporting/wrap.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/python_bindings/storage/graph_storage_wrap.cpp b/src/cpp/python_bindings/storage/graph_storage_wrap.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/python_bindings/storage/io_wrap.cpp b/src/cpp/python_bindings/storage/io_wrap.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/python_bindings/storage/storage_wrap.cpp b/src/cpp/python_bindings/storage/storage_wrap.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/python_bindings/storage/wrap.cpp b/src/cpp/python_bindings/storage/wrap.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/common/util.cpp b/src/cpp/src/common/util.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/configuration/config.cpp b/src/cpp/src/configuration/config.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/configuration/options.cpp b/src/cpp/src/configuration/options.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/configuration/util.cpp b/src/cpp/src/configuration/util.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/data/batch.cpp b/src/cpp/src/data/batch.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/data/dataloader.cpp b/src/cpp/src/data/dataloader.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/data/graph.cpp b/src/cpp/src/data/graph.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/data/ordering.cpp b/src/cpp/src/data/ordering.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/data/samplers/edge.cpp b/src/cpp/src/data/samplers/edge.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/data/samplers/negative.cpp b/src/cpp/src/data/samplers/negative.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/data/samplers/neighbor.cpp b/src/cpp/src/data/samplers/neighbor.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/marius.cpp b/src/cpp/src/marius.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/nn/activation.cpp b/src/cpp/src/nn/activation.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/nn/decoders/edge/comparators.cpp b/src/cpp/src/nn/decoders/edge/comparators.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/nn/decoders/edge/complex.cpp b/src/cpp/src/nn/decoders/edge/complex.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/nn/decoders/edge/decoder_methods.cpp b/src/cpp/src/nn/decoders/edge/decoder_methods.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/nn/decoders/edge/distmult.cpp b/src/cpp/src/nn/decoders/edge/distmult.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/nn/decoders/edge/edge_decoder.cpp b/src/cpp/src/nn/decoders/edge/edge_decoder.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/nn/decoders/edge/relation_operators.cpp b/src/cpp/src/nn/decoders/edge/relation_operators.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/nn/decoders/edge/transe.cpp b/src/cpp/src/nn/decoders/edge/transe.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/nn/decoders/node/noop_node_decoder.cpp b/src/cpp/src/nn/decoders/node/noop_node_decoder.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/nn/encoders/encoder.cpp b/src/cpp/src/nn/encoders/encoder.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/nn/initialization.cpp b/src/cpp/src/nn/initialization.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/nn/layers/embedding/embedding.cpp b/src/cpp/src/nn/layers/embedding/embedding.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/nn/layers/feature/feature.cpp b/src/cpp/src/nn/layers/feature/feature.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/nn/layers/gnn/gat_layer.cpp b/src/cpp/src/nn/layers/gnn/gat_layer.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/nn/layers/gnn/gcn_layer.cpp b/src/cpp/src/nn/layers/gnn/gcn_layer.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/nn/layers/gnn/graph_sage_layer.cpp b/src/cpp/src/nn/layers/gnn/graph_sage_layer.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/nn/layers/gnn/layer_helpers.cpp b/src/cpp/src/nn/layers/gnn/layer_helpers.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/nn/layers/gnn/rgcn_layer.cpp b/src/cpp/src/nn/layers/gnn/rgcn_layer.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/nn/layers/layer.cpp b/src/cpp/src/nn/layers/layer.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/nn/layers/reduction/concat.cpp b/src/cpp/src/nn/layers/reduction/concat.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/nn/layers/reduction/linear.cpp b/src/cpp/src/nn/layers/reduction/linear.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/nn/loss.cpp b/src/cpp/src/nn/loss.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/nn/model.cpp b/src/cpp/src/nn/model.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/nn/optim.cpp b/src/cpp/src/nn/optim.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/nn/regularizer.cpp b/src/cpp/src/nn/regularizer.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/pipeline/evaluator.cpp b/src/cpp/src/pipeline/evaluator.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/pipeline/graph_encoder.cpp b/src/cpp/src/pipeline/graph_encoder.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/pipeline/pipeline.cpp b/src/cpp/src/pipeline/pipeline.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/pipeline/pipeline_cpu.cpp b/src/cpp/src/pipeline/pipeline_cpu.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/pipeline/pipeline_gpu.cpp b/src/cpp/src/pipeline/pipeline_gpu.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/pipeline/trainer.cpp b/src/cpp/src/pipeline/trainer.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/reporting/reporting.cpp b/src/cpp/src/reporting/reporting.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/storage/buffer.cpp b/src/cpp/src/storage/buffer.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/storage/checkpointer.cpp b/src/cpp/src/storage/checkpointer.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/storage/graph_storage.cpp b/src/cpp/src/storage/graph_storage.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/storage/io.cpp b/src/cpp/src/storage/io.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/src/storage/storage.cpp b/src/cpp/src/storage/storage.cpp old mode 100644 new mode 100755 diff --git a/src/cpp/third_party/CMakeLists.txt b/src/cpp/third_party/CMakeLists.txt old mode 100644 new mode 100755 diff --git a/src/cuda/third_party/pytorch_scatter/atomics.cuh b/src/cuda/third_party/pytorch_scatter/atomics.cuh old mode 100644 new mode 100755 diff --git a/src/cuda/third_party/pytorch_scatter/index_info.cuh b/src/cuda/third_party/pytorch_scatter/index_info.cuh old mode 100644 new mode 100755 diff --git a/src/cuda/third_party/pytorch_scatter/reducer.cuh b/src/cuda/third_party/pytorch_scatter/reducer.cuh old mode 100644 new mode 100755 diff --git a/src/cuda/third_party/pytorch_scatter/segment_csr_cuda.cu b/src/cuda/third_party/pytorch_scatter/segment_csr_cuda.cu old mode 100644 new mode 100755 diff --git a/src/cuda/third_party/pytorch_scatter/segment_csr_cuda.h b/src/cuda/third_party/pytorch_scatter/segment_csr_cuda.h old mode 100644 new mode 100755 diff --git a/src/cuda/third_party/pytorch_scatter/segment_max.cpp b/src/cuda/third_party/pytorch_scatter/segment_max.cpp old mode 100644 new mode 100755 diff --git a/src/cuda/third_party/pytorch_scatter/segment_max.h b/src/cuda/third_party/pytorch_scatter/segment_max.h old mode 100644 new mode 100755 diff --git a/src/cuda/third_party/pytorch_scatter/utils.cuh b/src/cuda/third_party/pytorch_scatter/utils.cuh old mode 100644 new mode 100755 diff --git a/src/python/__init__.py b/src/python/__init__.py old mode 100644 new mode 100755 diff --git a/src/python/console_scripts/__init__.py b/src/python/console_scripts/__init__.py old mode 100644 new mode 100755 diff --git a/src/python/console_scripts/marius_eval.py b/src/python/console_scripts/marius_eval.py old mode 100644 new mode 100755 diff --git a/src/python/console_scripts/marius_train.py b/src/python/console_scripts/marius_train.py old mode 100644 new mode 100755 diff --git a/src/python/distribution/generate_stubs.py b/src/python/distribution/generate_stubs.py old mode 100644 new mode 100755 diff --git a/src/python/distribution/marius_env_info.py b/src/python/distribution/marius_env_info.py old mode 100644 new mode 100755 diff --git a/src/python/tools/__init__.py b/src/python/tools/__init__.py old mode 100644 new mode 100755 diff --git a/src/python/tools/configuration/__init__.py b/src/python/tools/configuration/__init__.py old mode 100644 new mode 100755 diff --git a/src/python/tools/configuration/constants.py b/src/python/tools/configuration/constants.py old mode 100644 new mode 100755 diff --git a/src/python/tools/configuration/datatypes.py b/src/python/tools/configuration/datatypes.py old mode 100644 new mode 100755 diff --git a/src/python/tools/configuration/marius_config.py b/src/python/tools/configuration/marius_config.py old mode 100644 new mode 100755 diff --git a/src/python/tools/configuration/validation.py b/src/python/tools/configuration/validation.py old mode 100644 new mode 100755 diff --git a/src/python/tools/db2graph/marius_db2graph.py b/src/python/tools/db2graph/marius_db2graph.py old mode 100644 new mode 100755 diff --git a/src/python/tools/marius_config_generator.py b/src/python/tools/marius_config_generator.py old mode 100644 new mode 100755 diff --git a/src/python/tools/marius_postprocess.py b/src/python/tools/marius_postprocess.py old mode 100644 new mode 100755 diff --git a/src/python/tools/marius_predict.py b/src/python/tools/marius_predict.py old mode 100644 new mode 100755 diff --git a/src/python/tools/marius_preprocess.py b/src/python/tools/marius_preprocess.py old mode 100644 new mode 100755 diff --git a/src/python/tools/postprocess/__init__.py b/src/python/tools/postprocess/__init__.py old mode 100644 new mode 100755 diff --git a/src/python/tools/postprocess/in_memory_exporter.py b/src/python/tools/postprocess/in_memory_exporter.py old mode 100644 new mode 100755 diff --git a/src/python/tools/prediction/link_prediction.py b/src/python/tools/prediction/link_prediction.py old mode 100644 new mode 100755 diff --git a/src/python/tools/prediction/node_classification.py b/src/python/tools/prediction/node_classification.py old mode 100644 new mode 100755 diff --git a/src/python/tools/preprocess/__init__.py b/src/python/tools/preprocess/__init__.py old mode 100644 new mode 100755 diff --git a/src/python/tools/preprocess/converters/__init__.py b/src/python/tools/preprocess/converters/__init__.py old mode 100644 new mode 100755 diff --git a/src/python/tools/preprocess/converters/partitioners/__init__.py b/src/python/tools/preprocess/converters/partitioners/__init__.py old mode 100644 new mode 100755 diff --git a/src/python/tools/preprocess/converters/partitioners/partitioner.py b/src/python/tools/preprocess/converters/partitioners/partitioner.py old mode 100644 new mode 100755 diff --git a/src/python/tools/preprocess/converters/partitioners/spark_partitioner.py b/src/python/tools/preprocess/converters/partitioners/spark_partitioner.py old mode 100644 new mode 100755 diff --git a/src/python/tools/preprocess/converters/partitioners/torch_partitioner.py b/src/python/tools/preprocess/converters/partitioners/torch_partitioner.py old mode 100644 new mode 100755 diff --git a/src/python/tools/preprocess/converters/readers/__init__.py b/src/python/tools/preprocess/converters/readers/__init__.py old mode 100644 new mode 100755 diff --git a/src/python/tools/preprocess/converters/readers/pandas_readers.py b/src/python/tools/preprocess/converters/readers/pandas_readers.py old mode 100644 new mode 100755 diff --git a/src/python/tools/preprocess/converters/readers/reader.py b/src/python/tools/preprocess/converters/readers/reader.py old mode 100644 new mode 100755 diff --git a/src/python/tools/preprocess/converters/readers/spark_readers.py b/src/python/tools/preprocess/converters/readers/spark_readers.py old mode 100644 new mode 100755 diff --git a/src/python/tools/preprocess/converters/spark_constants.py b/src/python/tools/preprocess/converters/spark_constants.py old mode 100644 new mode 100755 diff --git a/src/python/tools/preprocess/converters/spark_converter.py b/src/python/tools/preprocess/converters/spark_converter.py old mode 100644 new mode 100755 diff --git a/src/python/tools/preprocess/converters/torch_constants.py b/src/python/tools/preprocess/converters/torch_constants.py old mode 100644 new mode 100755 diff --git a/src/python/tools/preprocess/converters/torch_converter.py b/src/python/tools/preprocess/converters/torch_converter.py old mode 100644 new mode 100755 diff --git a/src/python/tools/preprocess/converters/writers/__init__.py b/src/python/tools/preprocess/converters/writers/__init__.py old mode 100644 new mode 100755 diff --git a/src/python/tools/preprocess/converters/writers/spark_writer.py b/src/python/tools/preprocess/converters/writers/spark_writer.py old mode 100644 new mode 100755 diff --git a/src/python/tools/preprocess/converters/writers/torch_writer.py b/src/python/tools/preprocess/converters/writers/torch_writer.py old mode 100644 new mode 100755 diff --git a/src/python/tools/preprocess/converters/writers/writer.py b/src/python/tools/preprocess/converters/writers/writer.py old mode 100644 new mode 100755 diff --git a/src/python/tools/preprocess/custom.py b/src/python/tools/preprocess/custom.py old mode 100644 new mode 100755 diff --git a/src/python/tools/preprocess/dataset.py b/src/python/tools/preprocess/dataset.py old mode 100644 new mode 100755 diff --git a/src/python/tools/preprocess/dataset_stats.tsv b/src/python/tools/preprocess/dataset_stats.tsv old mode 100644 new mode 100755 diff --git a/src/python/tools/preprocess/datasets/__init__.py b/src/python/tools/preprocess/datasets/__init__.py old mode 100644 new mode 100755 diff --git a/src/python/tools/preprocess/datasets/dataset_helpers.py b/src/python/tools/preprocess/datasets/dataset_helpers.py old mode 100644 new mode 100755 diff --git a/src/python/tools/preprocess/datasets/fb15k.py b/src/python/tools/preprocess/datasets/fb15k.py old mode 100644 new mode 100755 diff --git a/src/python/tools/preprocess/datasets/fb15k_237.py b/src/python/tools/preprocess/datasets/fb15k_237.py old mode 100644 new mode 100755 diff --git a/src/python/tools/preprocess/datasets/freebase86m.py b/src/python/tools/preprocess/datasets/freebase86m.py old mode 100644 new mode 100755 diff --git a/src/python/tools/preprocess/datasets/friendster.py b/src/python/tools/preprocess/datasets/friendster.py old mode 100644 new mode 100755 diff --git a/src/python/tools/preprocess/datasets/livejournal.py b/src/python/tools/preprocess/datasets/livejournal.py old mode 100644 new mode 100755 diff --git a/src/python/tools/preprocess/datasets/ogb_mag240m.py b/src/python/tools/preprocess/datasets/ogb_mag240m.py old mode 100644 new mode 100755 diff --git a/src/python/tools/preprocess/datasets/ogb_wikikg90mv2.py b/src/python/tools/preprocess/datasets/ogb_wikikg90mv2.py old mode 100644 new mode 100755 diff --git a/src/python/tools/preprocess/datasets/ogbl_citation2.py b/src/python/tools/preprocess/datasets/ogbl_citation2.py old mode 100644 new mode 100755 diff --git a/src/python/tools/preprocess/datasets/ogbl_collab.py b/src/python/tools/preprocess/datasets/ogbl_collab.py old mode 100644 new mode 100755 diff --git a/src/python/tools/preprocess/datasets/ogbl_ppa.py b/src/python/tools/preprocess/datasets/ogbl_ppa.py old mode 100644 new mode 100755 diff --git a/src/python/tools/preprocess/datasets/ogbl_wikikg2.py b/src/python/tools/preprocess/datasets/ogbl_wikikg2.py old mode 100644 new mode 100755 diff --git a/src/python/tools/preprocess/datasets/ogbn_arxiv.py b/src/python/tools/preprocess/datasets/ogbn_arxiv.py old mode 100644 new mode 100755 diff --git a/src/python/tools/preprocess/datasets/ogbn_papers100m.py b/src/python/tools/preprocess/datasets/ogbn_papers100m.py old mode 100644 new mode 100755 diff --git a/src/python/tools/preprocess/datasets/ogbn_products.py b/src/python/tools/preprocess/datasets/ogbn_products.py old mode 100644 new mode 100755 index bade27c6..d28e43ed --- a/src/python/tools/preprocess/datasets/ogbn_products.py +++ b/src/python/tools/preprocess/datasets/ogbn_products.py @@ -80,7 +80,6 @@ def preprocess( output_dir=self.output_directory, train_edges=self.input_edge_list_file, num_partitions=num_partitions, - columns=[0, 1], src_column=0, dst_column=1, remap_ids=remap_ids, diff --git a/src/python/tools/preprocess/datasets/twitter.py b/src/python/tools/preprocess/datasets/twitter.py old mode 100644 new mode 100755 diff --git a/src/python/tools/preprocess/utils.py b/src/python/tools/preprocess/utils.py old mode 100644 new mode 100755 diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt old mode 100644 new mode 100755 diff --git a/test/README.md b/test/README.md old mode 100644 new mode 100755 diff --git a/test/__init__.py b/test/__init__.py old mode 100644 new mode 100755 diff --git a/test/cpp/CMakeLists.txt b/test/cpp/CMakeLists.txt old mode 100644 new mode 100755 diff --git a/test/cpp/end_to_end/CMakeLists.txt b/test/cpp/end_to_end/CMakeLists.txt old mode 100644 new mode 100755 diff --git a/test/cpp/end_to_end/main.cpp b/test/cpp/end_to_end/main.cpp old mode 100644 new mode 100755 diff --git a/test/cpp/end_to_end/test_main.cpp b/test/cpp/end_to_end/test_main.cpp old mode 100644 new mode 100755 diff --git a/test/cpp/integration/CMakeLists.txt b/test/cpp/integration/CMakeLists.txt old mode 100644 new mode 100755 diff --git a/test/cpp/integration/main.cpp b/test/cpp/integration/main.cpp old mode 100644 new mode 100755 diff --git a/test/cpp/performance/CMakeLists.txt b/test/cpp/performance/CMakeLists.txt old mode 100644 new mode 100755 diff --git a/test/cpp/performance/main.cpp b/test/cpp/performance/main.cpp old mode 100644 new mode 100755 diff --git a/test/cpp/unit/CMakeLists.txt b/test/cpp/unit/CMakeLists.txt old mode 100644 new mode 100755 diff --git a/test/cpp/unit/data/samplers/test_negative.cpp b/test/cpp/unit/data/samplers/test_negative.cpp deleted file mode 100644 index c025f081..00000000 --- a/test/cpp/unit/data/samplers/test_negative.cpp +++ /dev/null @@ -1,234 +0,0 @@ -// -// Created by Jason Mohoney on 2/9/22. -// - -#include -#include - -int num_nodes = 6; - -torch::Tensor edges = torch::tensor({{0, 2}, {0, 4}, {1, 3}, {1, 5}, {4, 2}, {5, 2}}, torch::kInt64); - -torch::Tensor typed_edges = torch::tensor({{0, 0, 2}, {0, 1, 4}, {1, 1, 3}, {1, 0, 5}, {4, 0, 2}, {5, 1, 2}}, torch::kInt64); - -torch::Tensor batch_edges = torch::tensor({{1, 5}, {0, 2}, {4, 2}}, torch::kInt64); -torch::Tensor batch_typed_edges = torch::tensor({{1, 0, 5}, {0, 0, 2}, {4, 0, 2}}, torch::kInt64); - -class CorruptNodeNegativeSamplerTest : public ::testing::Test { - protected: - shared_ptr graph; - shared_ptr typed_graph; - - void SetUp() override { - torch::Tensor dst_sorted_edges = edges.index_select(0, edges.select(1, 1).argsort(0)); - torch::Tensor dst_sorted_typed_edges = typed_edges.index_select(0, typed_edges.select(1, 2).argsort(0)); - - graph = std::make_shared(edges, dst_sorted_edges, num_nodes); - typed_graph = std::make_shared(typed_edges, dst_sorted_typed_edges, num_nodes); - - graph->sortAllEdges(torch::tensor({{0, 3}}, torch::kInt64)); - typed_graph->sortAllEdges(torch::tensor({{0, 1, 3}}, torch::kInt64)); - } -}; - -void validate_sample(shared_ptr sampler, torch::Tensor sample, shared_ptr graph) { - // validate shape - ASSERT_EQ(sample.size(0), sampler->num_chunks_); - - if (sampler->num_negatives_ != -1) { - ASSERT_EQ(sample.size(1), sampler->num_negatives_); - } else { - ASSERT_EQ(sample.size(1), graph->num_nodes_in_memory_); - } - - // validate max and min ids - ASSERT_TRUE(sample.max().item() < graph->num_nodes_in_memory_); - ASSERT_TRUE(sample.min().item() >= 0); -} - -void validate_filter_local(torch::Tensor filter, torch::Tensor sample, torch::Tensor edges_t, bool inverse) { - // check filtered edges are present in the graph - auto batch_accessor = edges_t.accessor(); - auto sample_accessor = sample.accessor(); - auto filter_accessor = filter.accessor(); - - bool has_relations = false; - if (edges_t.size(1) == 3) { - has_relations = true; - } - - int64_t num_chunks = sample.size(0); - int64_t num_edges = edges_t.size(0); - int64_t chunk_size = ceil((double)num_edges / num_chunks); - - for (int i = 0; i < filter.size(0); i++) { - int64_t src; - int64_t rel; - int64_t dst; - - bool found = false; - - int64_t edge_id = filter_accessor[i][0]; - - int chunk_id = edge_id / chunk_size; - - if (inverse) { - src = sample_accessor[chunk_id][filter_accessor[i][1]]; - if (has_relations) { - rel = batch_accessor[edge_id][1]; - dst = batch_accessor[edge_id][2]; - } else { - dst = batch_accessor[edge_id][1]; - } - } else { - src = batch_accessor[edge_id][0]; - dst = sample_accessor[chunk_id][filter_accessor[i][1]]; - if (has_relations) { - rel = batch_accessor[edge_id][1]; - } - } - - if (has_relations) { - for (int k = 0; k < edges_t.size(0); k++) { - if (batch_accessor[k][0] == src && batch_accessor[k][1] == rel && batch_accessor[k][2] == dst) { - found = true; - } - } - } else { - for (int k = 0; k < edges_t.size(0); k++) { - if (batch_accessor[k][0] == src && batch_accessor[k][1] == dst) { - found = true; - } - } - } - ASSERT_TRUE(found); - } -} - -void validate_filter_global(torch::Tensor filter, torch::Tensor sample, shared_ptr graph, torch::Tensor edges_t, bool inverse) { - // check filtered edges are present in the graph - auto graph_accessor = graph->src_sorted_edges_.accessor(); - auto batch_accessor = edges_t.accessor(); - auto sample_accessor = sample.accessor(); - auto filter_accessor = filter.accessor(); - - bool has_relations = false; - if (edges_t.size(1) == 3) { - has_relations = true; - } - - int64_t num_chunks = sample.size(0); - int64_t num_edges = edges_t.size(0); - int64_t chunk_size = ceil((double)num_edges / num_chunks); - - for (int i = 0; i < filter.size(0); i++) { - int64_t src; - int64_t rel; - int64_t dst; - - bool found = false; - - int64_t edge_id = filter_accessor[i][0]; - - int chunk_id = edge_id / chunk_size; - - if (inverse) { - src = sample_accessor[chunk_id][filter_accessor[i][1]]; - if (has_relations) { - rel = batch_accessor[edge_id][1]; - dst = batch_accessor[edge_id][2]; - } else { - dst = batch_accessor[edge_id][1]; - } - } else { - src = batch_accessor[edge_id][0]; - dst = sample_accessor[chunk_id][filter_accessor[i][1]]; - if (has_relations) { - rel = batch_accessor[edge_id][1]; - } - } - - if (has_relations) { - for (int k = 0; k < graph->src_sorted_edges_.size(0); k++) { - if (graph_accessor[k][0] == src && graph_accessor[k][1] == rel && graph_accessor[k][2] == dst) { - found = true; - } - } - } else { - for (int k = 0; k < graph->src_sorted_edges_.size(0); k++) { - if (graph_accessor[k][0] == src && graph_accessor[k][1] == dst) { - found = true; - } - } - } - ASSERT_TRUE(found); - } -} - -void test_unfiltered_corruption_sampler(shared_ptr sampler, shared_ptr graph, torch::Tensor edges_t) { - torch::Tensor sample; - torch::Tensor filter; - - std::tie(sample, filter) = sampler->getNegatives(graph, edges_t, false); - validate_sample(sampler, sample, graph); - validate_filter_local(filter, sample, edges_t, false); - - std::tie(sample, filter) = sampler->getNegatives(graph, edges_t, true); - validate_sample(sampler, sample, graph); - validate_filter_local(filter, sample, edges_t, true); -} - -void test_filtered_corruption_sampler(shared_ptr sampler, shared_ptr graph, torch::Tensor edges_t) { - torch::Tensor sample; - torch::Tensor filter; - - std::tie(sample, filter) = sampler->getNegatives(graph, edges_t, false); - validate_sample(sampler, sample, graph); - validate_filter_global(filter, sample, graph, edges_t, false); - - std::tie(sample, filter) = sampler->getNegatives(graph, edges_t, true); - validate_sample(sampler, sample, graph); - validate_filter_global(filter, sample, graph, edges_t, true); -} - -TEST_F(CorruptNodeNegativeSamplerTest, TestUniform) { - auto corrupt_uniform = std::make_shared(1, 5, 0.0, false); - test_unfiltered_corruption_sampler(corrupt_uniform, graph, batch_edges); - test_unfiltered_corruption_sampler(corrupt_uniform, typed_graph, batch_typed_edges); -} - -TEST_F(CorruptNodeNegativeSamplerTest, TestUniformChunked) { - auto corrupt_uniform_chunked = std::make_shared(3, 5, 0.0, false); - test_unfiltered_corruption_sampler(corrupt_uniform_chunked, graph, batch_edges); - test_unfiltered_corruption_sampler(corrupt_uniform_chunked, typed_graph, batch_typed_edges); -} - -TEST_F(CorruptNodeNegativeSamplerTest, TestMix) { - auto corrupt_mix = std::make_shared(1, 5, 0.5, false); - test_unfiltered_corruption_sampler(corrupt_mix, graph, batch_edges); - test_unfiltered_corruption_sampler(corrupt_mix, typed_graph, batch_typed_edges); -} - -TEST_F(CorruptNodeNegativeSamplerTest, TestMixChunked) { - auto corrupt_mix_chunked = std::make_shared(3, 5, 0.5, false); - test_unfiltered_corruption_sampler(corrupt_mix_chunked, graph, batch_edges); - test_unfiltered_corruption_sampler(corrupt_mix_chunked, typed_graph, batch_typed_edges); -} - -TEST_F(CorruptNodeNegativeSamplerTest, TestAllDegree) { - auto corrupt_all_degree = std::make_shared(1, 5, 1.0, false); - test_unfiltered_corruption_sampler(corrupt_all_degree, graph, batch_edges); - test_unfiltered_corruption_sampler(corrupt_all_degree, typed_graph, batch_typed_edges); -} - -TEST_F(CorruptNodeNegativeSamplerTest, TestAllDegreeChunked) { - auto corrupt_all_degree_chunked = std::make_shared(3, 5, 1.0, false); - test_unfiltered_corruption_sampler(corrupt_all_degree_chunked, graph, batch_edges); - test_unfiltered_corruption_sampler(corrupt_all_degree_chunked, typed_graph, batch_typed_edges); -} - -TEST_F(CorruptNodeNegativeSamplerTest, TestFilter) { - auto corrupt_filtered = std::make_shared(1, -1, 0.0, true); - test_filtered_corruption_sampler(corrupt_filtered, graph, batch_edges); - test_filtered_corruption_sampler(corrupt_filtered, typed_graph, batch_typed_edges); -} \ No newline at end of file diff --git a/test/cpp/unit/main.cpp b/test/cpp/unit/main.cpp old mode 100644 new mode 100755 diff --git a/test/cpp/unit/nn/test_activation.cpp b/test/cpp/unit/nn/test_activation.cpp old mode 100644 new mode 100755 diff --git a/test/cpp/unit/nn/test_initialization.cpp b/test/cpp/unit/nn/test_initialization.cpp old mode 100644 new mode 100755 diff --git a/test/cpp/unit/nn/test_loss.cpp b/test/cpp/unit/nn/test_loss.cpp old mode 100644 new mode 100755 diff --git a/test/cpp/unit/nn/test_model.cpp b/test/cpp/unit/nn/test_model.cpp old mode 100644 new mode 100755 diff --git a/test/cpp/unit/test_buffer.cpp b/test/cpp/unit/test_buffer.cpp old mode 100644 new mode 100755 diff --git a/test/cpp/unit/test_storage.cpp b/test/cpp/unit/test_storage.cpp old mode 100644 new mode 100755 diff --git a/test/cpp/unit/testing_util.cpp b/test/cpp/unit/testing_util.cpp old mode 100644 new mode 100755 diff --git a/test/cpp/unit/testing_util.h b/test/cpp/unit/testing_util.h old mode 100644 new mode 100755 diff --git a/test/db2graph/test_postgres.py b/test/db2graph/test_postgres.py old mode 100644 new mode 100755 diff --git a/test/python/bindings/end_to_end/test_fb15k_acc.py b/test/python/bindings/end_to_end/test_fb15k_acc.py old mode 100644 new mode 100755 diff --git a/test/python/bindings/end_to_end/test_interval_checkpointing.py b/test/python/bindings/end_to_end/test_interval_checkpointing.py old mode 100644 new mode 100755 diff --git a/test/python/bindings/end_to_end/test_lp_basic.py b/test/python/bindings/end_to_end/test_lp_basic.py old mode 100644 new mode 100755 diff --git a/test/python/bindings/end_to_end/test_lp_buffer.py b/test/python/bindings/end_to_end/test_lp_buffer.py old mode 100644 new mode 100755 diff --git a/test/python/bindings/end_to_end/test_lp_storage.py b/test/python/bindings/end_to_end/test_lp_storage.py old mode 100644 new mode 100755 diff --git a/test/python/bindings/end_to_end/test_model_dir.py b/test/python/bindings/end_to_end/test_model_dir.py old mode 100644 new mode 100755 diff --git a/test/python/bindings/end_to_end/test_nc_basic.py b/test/python/bindings/end_to_end/test_nc_basic.py old mode 100644 new mode 100755 diff --git a/test/python/bindings/end_to_end/test_nc_buffer.py b/test/python/bindings/end_to_end/test_nc_buffer.py old mode 100644 new mode 100755 diff --git a/test/python/bindings/end_to_end/test_nc_storage.py b/test/python/bindings/end_to_end/test_nc_storage.py old mode 100644 new mode 100755 diff --git a/test/python/bindings/end_to_end/test_resume_training.py b/test/python/bindings/end_to_end/test_resume_training.py old mode 100644 new mode 100755 diff --git a/test/python/bindings/integration/test_config.py b/test/python/bindings/integration/test_config.py old mode 100644 new mode 100755 diff --git a/test/python/bindings/integration/test_data.py b/test/python/bindings/integration/test_data.py old mode 100644 new mode 100755 diff --git a/test/python/bindings/integration/test_nn.py b/test/python/bindings/integration/test_nn.py old mode 100644 new mode 100755 diff --git a/test/python/constants.py b/test/python/constants.py old mode 100644 new mode 100755 diff --git a/test/python/helpers.py b/test/python/helpers.py old mode 100644 new mode 100755 diff --git a/test/python/postprocessing/test_in_memory_exporter.py b/test/python/postprocessing/test_in_memory_exporter.py old mode 100644 new mode 100755 diff --git a/test/python/predict/test_predict.py b/test/python/predict/test_predict.py old mode 100644 new mode 100755 diff --git a/test/python/preprocessing/test_spark_converter.py b/test/python/preprocessing/test_spark_converter.py old mode 100644 new mode 100755 diff --git a/test/python/preprocessing/test_torch_converter.py b/test/python/preprocessing/test_torch_converter.py old mode 100644 new mode 100755 diff --git a/test/test_configs/generate_test_configs.py b/test/test_configs/generate_test_configs.py old mode 100644 new mode 100755 diff --git a/test/test_configs/lp/evaluation/async.yaml b/test/test_configs/lp/evaluation/async.yaml old mode 100644 new mode 100755 diff --git a/test/test_configs/lp/evaluation/async_deg.yaml b/test/test_configs/lp/evaluation/async_deg.yaml old mode 100644 new mode 100755 diff --git a/test/test_configs/lp/evaluation/async_filtered.yaml b/test/test_configs/lp/evaluation/async_filtered.yaml old mode 100644 new mode 100755 diff --git a/test/test_configs/lp/evaluation/sync.yaml b/test/test_configs/lp/evaluation/sync.yaml old mode 100644 new mode 100755 diff --git a/test/test_configs/lp/evaluation/sync_deg.yaml b/test/test_configs/lp/evaluation/sync_deg.yaml old mode 100644 new mode 100755 diff --git a/test/test_configs/lp/evaluation/sync_filtered.yaml b/test/test_configs/lp/evaluation/sync_filtered.yaml old mode 100644 new mode 100755 diff --git a/test/test_configs/lp/model/distmult.yaml b/test/test_configs/lp/model/distmult.yaml old mode 100644 new mode 100755 diff --git a/test/test_configs/lp/model/distmult_feat.yaml b/test/test_configs/lp/model/distmult_feat.yaml old mode 100644 new mode 100755 diff --git a/test/test_configs/lp/model/gat_1_layer.yaml b/test/test_configs/lp/model/gat_1_layer.yaml old mode 100644 new mode 100755 diff --git a/test/test_configs/lp/model/gat_3_layer.yaml b/test/test_configs/lp/model/gat_3_layer.yaml old mode 100644 new mode 100755 diff --git a/test/test_configs/lp/model/gs_1_layer.yaml b/test/test_configs/lp/model/gs_1_layer.yaml old mode 100644 new mode 100755 diff --git a/test/test_configs/lp/model/gs_1_layer_feat.yaml b/test/test_configs/lp/model/gs_1_layer_feat.yaml old mode 100644 new mode 100755 diff --git a/test/test_configs/lp/model/gs_1_layer_uniform.yaml b/test/test_configs/lp/model/gs_1_layer_uniform.yaml old mode 100644 new mode 100755 diff --git a/test/test_configs/lp/model/gs_3_layer.yaml b/test/test_configs/lp/model/gs_3_layer.yaml old mode 100644 new mode 100755 diff --git a/test/test_configs/lp/model/gs_3_layer_feat.yaml b/test/test_configs/lp/model/gs_3_layer_feat.yaml old mode 100644 new mode 100755 diff --git a/test/test_configs/lp/model/gs_3_layer_uniform.yaml b/test/test_configs/lp/model/gs_3_layer_uniform.yaml old mode 100644 new mode 100755 diff --git a/test/test_configs/lp/storage/edges_disk.yaml b/test/test_configs/lp/storage/edges_disk.yaml old mode 100644 new mode 100755 diff --git a/test/test_configs/lp/storage/in_memory.yaml b/test/test_configs/lp/storage/in_memory.yaml old mode 100644 new mode 100755 diff --git a/test/test_configs/lp/storage/part_buffer.yaml b/test/test_configs/lp/storage/part_buffer.yaml old mode 100644 new mode 100755 diff --git a/test/test_configs/lp/training/async.yaml b/test/test_configs/lp/training/async.yaml old mode 100644 new mode 100755 diff --git a/test/test_configs/lp/training/async_deg.yaml b/test/test_configs/lp/training/async_deg.yaml old mode 100644 new mode 100755 diff --git a/test/test_configs/lp/training/async_filtered.yaml b/test/test_configs/lp/training/async_filtered.yaml old mode 100644 new mode 100755 diff --git a/test/test_configs/lp/training/sync.yaml b/test/test_configs/lp/training/sync.yaml old mode 100644 new mode 100755 diff --git a/test/test_configs/lp/training/sync_deg.yaml b/test/test_configs/lp/training/sync_deg.yaml old mode 100644 new mode 100755 diff --git a/test/test_configs/lp/training/sync_filtered.yaml b/test/test_configs/lp/training/sync_filtered.yaml old mode 100644 new mode 100755 diff --git a/test/test_configs/nc/evaluation/async.yaml b/test/test_configs/nc/evaluation/async.yaml old mode 100644 new mode 100755 diff --git a/test/test_configs/nc/evaluation/sync.yaml b/test/test_configs/nc/evaluation/sync.yaml old mode 100644 new mode 100755 diff --git a/test/test_configs/nc/model/gat_1_layer.yaml b/test/test_configs/nc/model/gat_1_layer.yaml old mode 100644 new mode 100755 diff --git a/test/test_configs/nc/model/gat_3_layer.yaml b/test/test_configs/nc/model/gat_3_layer.yaml old mode 100644 new mode 100755 diff --git a/test/test_configs/nc/model/gs_1_layer.yaml b/test/test_configs/nc/model/gs_1_layer.yaml old mode 100644 new mode 100755 diff --git a/test/test_configs/nc/model/gs_1_layer_emb.yaml b/test/test_configs/nc/model/gs_1_layer_emb.yaml old mode 100644 new mode 100755 diff --git a/test/test_configs/nc/model/gs_1_layer_uniform.yaml b/test/test_configs/nc/model/gs_1_layer_uniform.yaml old mode 100644 new mode 100755 diff --git a/test/test_configs/nc/model/gs_3_layer.yaml b/test/test_configs/nc/model/gs_3_layer.yaml old mode 100644 new mode 100755 diff --git a/test/test_configs/nc/model/gs_3_layer_emb.yaml b/test/test_configs/nc/model/gs_3_layer_emb.yaml old mode 100644 new mode 100755 diff --git a/test/test_configs/nc/model/gs_3_layer_uniform.yaml b/test/test_configs/nc/model/gs_3_layer_uniform.yaml old mode 100644 new mode 100755 diff --git a/test/test_configs/nc/storage/in_memory.yaml b/test/test_configs/nc/storage/in_memory.yaml old mode 100644 new mode 100755 diff --git a/test/test_configs/nc/storage/part_buffer.yaml b/test/test_configs/nc/storage/part_buffer.yaml old mode 100644 new mode 100755 diff --git a/test/test_configs/nc/training/async.yaml b/test/test_configs/nc/training/async.yaml old mode 100644 new mode 100755 diff --git a/test/test_configs/nc/training/sync.yaml b/test/test_configs/nc/training/sync.yaml old mode 100644 new mode 100755 diff --git a/test/test_data/generate.py b/test/test_data/generate.py old mode 100644 new mode 100755 diff --git a/test/test_data/test_edges.txt b/test/test_data/test_edges.txt old mode 100644 new mode 100755 diff --git a/test/test_data/train_edges.txt b/test/test_data/train_edges.txt old mode 100644 new mode 100755 diff --git a/test/test_data/train_edges_weights.txt b/test/test_data/train_edges_weights.txt old mode 100644 new mode 100755 diff --git a/test/test_data/valid_edges.txt b/test/test_data/valid_edges.txt old mode 100644 new mode 100755 diff --git a/tox.ini b/tox.ini old mode 100644 new mode 100755