Open-source project
Lin-Yijie/Graph-Matching-Networks avatar
Lin-Yijie/Graph-Matching-Networks

Graph-Matching-Networks: Two Graph Matching Papers, One PyTorch Repository

PyTorch implementation of Graph Matching Networks, e.g., Graph Matching with Bi-level Noisy Correspondence (COMMON, ICCV 2023), Graph Matching Networks for Learning the Similarity of Graph Structured Objects (GMN, ICML 2019).

320 stars60 forksPythonNOASSERTION

At a glance

What is it?
This repository collects PyTorch implementations of two graph matching methods: COMMON from ICCV 2023 and GMN from ICML 2019. The README points to a third paper whose code lives in a different repository, which is the first thing to understand before cloning.
Who is it for?
Adopt this repository if you are reproducing COMMON or GMN and want the authors' own code rather than a reimplementation. Do not adopt it if you need the TPAMI 2026 method, because the README routes that work to ThinkMatch instead.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Yes. The repository last received commits 92 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

Two Papers, Two Subdirectories, and a Third That Lives Elsewhere

The repository is a container for more than one implementation. The README lists three papers, each with a link to code. The first is Graph Matching with Bi-level Noisy Correspondence (COMMON, ICCV 2023), attributed to Yijie Lin, Mouxing Yang, Jun Yu, Peng Hu, Changqing Zhang and Xi Peng, with a link to the COMMON subdirectory. The second is Graph Matching Networks for Learning the Similarity of Graph Structured Objects (GMN, ICML 2019), attributed to Yujia Li, Chenjie Gu, Thomas Dullien, Oriol Vinyals and Pushmeet Kohli, with a link to the GMN subdirectory. The third is Learning with Partial and Noisy Correspondence in Graph Matching (TPAMI, 2026), and its code link points to github.com/Thinklab-SJTU/ThinkMatch, not to a folder in this repository. That distinction matters. Anyone who clones this repository expecting the 2026 method will not find it here. The repository covers COMMON and GMN only.

What Graph Matching Actually Asks the Model to Do

Graph matching takes two graphs and decides how their nodes correspond. The two papers in this repository approach that question from different directions. GMN, per its title, learns a similarity score between graph structured objects, meaning the output is a judgement about how alike two graphs are. COMMON, per its title, addresses bi-level noisy correspondence, meaning the training signal itself contains incorrect pairings at more than one level. The README does not expand on either mechanism, so a reader who wants the architecture has to open the linked paper PDFs. What the README does establish is the intended audience: researchers and engineers working with graph neural networks in PyTorch who need a matching or similarity component and want the original authors' code rather than a third-party reimplementation.

Repository Layout as Documented

The README's code links are the only structural information provided. They point to two paths on the main branch: /tree/main/COMMON and /tree/main/GMN. Each paper therefore has its own directory, and the two are not presented as sharing a common framework or a unified training entry point. The topics list on the repository is deep-learning, gnn, graph-neural-networks and pytorch, which is consistent with a research code release rather than a packaged library. There is no homepage field, no releases have been retrieved, and the README shows no installation section, no requirements file listing, and no usage example. The default branch is main and the repository is not archived.

Getting It Running: What the README Does and Does Not Give You

This is the weakest part of the material. The README contains no pip install line, no conda environment file reference, no training command, and no configuration keys. The only concrete instruction it offers is implicit: follow the per-paper code link, which takes you to the COMMON or GMN subdirectory, and work from whatever that directory contains. Since the primary language is Python and the topic list names PyTorch, the reasonable assumption is that each subdirectory carries its own dependencies and its own entry scripts, but the README does not confirm this and I have not run the code. If you need a documented setup path before adopting anything, this repository does not provide one at the top level. Treat the subdirectory READMEs, if present, as the real documentation and budget time for dependency archaeology.

The Licence Badge and the NOASSERTION Status Disagree

The README carries a badge reading license MIT, linking to a LICENSE file on the main branch. The repository metadata reports the licence as NOASSERTION, which is what GitHub records when it cannot match the licence file to a known template. These two signals conflict. The badge is a claim; NOASSERTION is the platform declining to classify the file. Before you build anything on top of this code, open the LICENSE file and read it, and if the terms matter to your organisation, have someone qualified confirm them. I am not giving legal advice here, only flagging that the automated classification and the badge do not agree, and that disagreement is worth resolving before the code ends up in a product.

Where This Falls Short as a Dependency

Research code releases carry predictable costs, and the visible evidence here fits that pattern. There are no retrieved releases, so there is no versioned artefact to pin against. The README documents no API surface, which means upgrading means diffing the subdirectories yourself. The two implementations sit side by side without a shared abstraction, so code written against COMMON will not transfer to GMN. And the repository is a moving target: the last push is dated 2026-06-16, so the main branch can change under you. If you need a stable, documented graph matching component with a support commitment, this is the wrong tool. It is the right tool when you are reproducing a specific paper and want the authors' own code as the reference point.

ThinkMatch as the Alternative Path

The README itself points to an alternative for the newest work. The TPAMI 2026 paper, Learning with Partial and Noisy Correspondence in Graph Matching, links to github.com/Thinklab-SJTU/ThinkMatch. The difference in approach is organisational rather than algorithmic: ThinkMatch appears to be a separate, maintained codebase associated with a lab, whereas this repository is a per-paper collection with each method in its own directory. If your target is the 2026 method, ThinkMatch is not merely an alternative, it is the only code link the README provides. If your target is COMMON or GMN specifically, this repository is the direct source and ThinkMatch is not a substitute. The choice follows from which paper you need, not from a quality comparison, and the README gives no basis for the latter.

Editorial conclusion

Adopt this repository if you are reproducing COMMON or GMN and want the authors' own code rather than a reimplementation. Do not adopt it if you need the TPAMI 2026 method, because the README routes that work to ThinkMatch instead. Before committing, read the LICENSE file to resolve the NOASSERTION status, check which subdirectory corresponds to your target paper, and confirm the environment your PyTorch version requires.

Official sources

  1. Issues
  2. Lin-Yijie/Graph-Matching-Networks on GitHub
  3. README
Community notes

Community notes