| | --- |
| | license: mit |
| | library_name: pytorch |
| | datasets: |
| | - structlearning/isonetpp-benchmark |
| | tags: |
| | - graphs |
| | - subgraph-matching |
| | - graph-retrieval |
| | task_categories: |
| | - graph-ml |
| | --- |
| | |
| |
|
| | # ISONeT++ Model: isonet_node on ptc_fr |
| | |
| | Trained on the **large** split. |
| | |
| | ## Usage |
| | |
| | ```python |
| | import torch |
| | import json |
| | from utils.tooling import make_read_only |
| | from subgraph_matching.model_handler import get_model |
| | from subgraph_matching.test import evaluate_model |
| | |
| | |
| | from huggingface_hub import hf_hub_download |
| | |
| | model_name = "isonet_node" |
| | dataset_name = "ptc_fr" |
| | |
| | REPO_ID = "structlearning/isonetpp-benchmark" # change if you fork/rename |
| | |
| | def _load_module_from_hub(repo_id, filename, repo_type="dataset", module_name=None): |
| | path = hf_hub_download(repo_id=repo_id, filename=filename, repo_type=repo_type) |
| | name = module_name or filename.rsplit(".", 1)[0] |
| | spec = importlib.util.spec_from_file_location(name, path) |
| | mod = importlib.util.module_from_spec(spec) |
| | sys.modules[name] = mod |
| | spec.loader.exec_module(mod) |
| | return mod |
| | |
| | dataset_mod = _load_module_from_hub(REPO_ID, "subiso_dataset.py", repo_type="dataset", module_name="subiso_dataset") |
| | loader = _load_module_from_hub(REPO_ID, "isonetpp_loader.py", repo_type="dataset", module_name="isonetpp_loader") |
| | |
| |
|
| | ds_test = loader.load_isonetpp_benchmark( |
| | repo_id=REPO_ID, |
| | mode="test", # "train" | "val" | "test" |
| | dataset_name="ptc_fr" |
| | ) |
| | |
| | repo_id = f"structlearning/isonetpp-isonet_node-ptc_fr-large" |
| | |
| | # Load config |
| | config = json.load(open(hf_hub_download(repo_id, "config.json"))) |
| | config = make_read_only(config) |
| | |
| | # Load weights |
| | weights = hf_hub_download(repo_id, "pytorch_model.bin") |
| | state = torch.load(weights, weights_only=False) |
| | |
| | # Load dataset |
| | ds_test = loader.load_isonetpp_benchmark(dataset_name="ptc_fr", mode="test") |
| | |
| | model = get_model( |
| | model_name=config.name, |
| | config=config.model_config, |
| | max_node_set_size=ds_test.max_node_set_size, |
| | max_edge_set_size=ds_test.max_edge_set_size, |
| | device="cuda" |
| | ) |
| | model.load_state_dict(state) |
| | model.to("cuda") |
| | |
| | _, map_val = evaluate_model(model, ds_test) |
| | print(map_val) |
| | |
| | ``` |
| | |