Skip to content

YUYANG0915/PyGIP

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PyGIP

PyPI - Version Build Status License PyPI - Downloads Issues Pull Requests Stars GitHub forks

PyGIP is a Python library designed for experimenting with graph-based model extraction attacks and defenses. It provides a modular framework to implement and test attack and defense strategies on graph datasets.

Installation

PyGIP supports both CPU and GPU environments. Make sure you have Python installed (version >= 3.8, <3.13).

Base Installation

First, install the core package:

pip install PyGIP

This will install PyGIP with minimal dependencies.

CPU Version

pip install "PyGIP[torch,dgl]" \
  --index-url https://download.pytorch.org/whl/cpu \
  --extra-index-url https://pypi.org/simple \
  -f https://data.dgl.ai/wheels/repo.html

GPU Version (CUDA 12.1)

pip install "PyGIP[torch,dgl]" \
  --index-url https://download.pytorch.org/whl/cu121 \
  --extra-index-url https://pypi.org/simple \
  -f https://data.dgl.ai/wheels/torch-2.3/cu121/repo.html

Quick Start

Here’s a simple example to launch a Model Extraction Attack using PyGIP:

from datasets import Cora
from models.attack import ModelExtractionAttack0

# Load the Cora dataset
dataset = Cora()

# Initialize the attack with a sampling ratio of 0.25
mea = ModelExtractionAttack0(dataset, 0.25)

# Execute the attack
mea.attack()

This code loads the Cora dataset, initializes a basic model extraction attack (ModelExtractionAttack0), and runs the attack with a specified sampling ratio.

And a simple example to run a Defense method against Model Extraction Attack:

from datasets import Cora
from models.defense import RandomWM

# Load the Cora dataset
dataset = Cora()

# Initialize the attack with a sampling ratio of 0.25
med = RandomWM(dataset, 0.25)

# Execute the defense
med.defend()

which runs the Random Watermarking Graph to defend against MEA.

If you want to use cuda, please set environment variable:

export PYGIP_DEVICE=cuda:0

Implementation & Contributors Guideline

Refer to Implementation Guideline

Refer to Contributors Guideline

License

BSD 2-Clause License

Contact

For questions or contributions, please contact blshen@fsu.edu.

About

A Python package for Graph Intellectual Property Protection.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 100.0%