Pull Request: GNNFingers Defense Implementation #27
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
📦 Pull Request: GNNFingers Implementation
📋 Summary
This PR introduces an implementation of GNNFingers (node classification variant) under
models/defense/.🔍 Highlights
🧩 New Files Added
models/defense/GNNFingers.pyexamples/test1.pyexamples/verify_gnnfingers.pytests/test_gnnfingers_smoke.pyconfigs/gnnfingers_cora_paperish.yaml.gitignoreregistry/,ckpts/,*.pt)✅ Checklist
main🧠 Additional Context
🖥️ Environment
torch-2.3.0+cu121wheels)⚙️ How to Reproduce
🧾 Expected Output (Cora dataset)
📚 Alignment with the Paper
_build_suspects()constructs F⁺ / F⁻ via fine-tuning, pruning, reinit, and distillation.FingerprintNC.init_graph()and_clip_X()generate and clip feature and edge matrices._joint_train()alternates graph and verifier updates.Univerifier(MLP [128, 64, 32]) classifies (o₊, o₋).📈 Performance Summary
These results mirror the paper’s reported values for Cora.
📚 References
🧾 Notes for Reviewers
BaseDefenseAPI.verify_gnnfingers.py) reproduces the ownership test without retraining.🚀 Next Steps
suspects_cache_dir).Submitted by: Kien Le
Feature branch:
feat/GNNFingersDate:
10/24/2025