A library for encrypted, privacy preserving deep learning
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
binder Create environment.yml Jun 22, 2018
docs Format code with `black` Oct 9, 2018
examples Create a worker in the new runtime. Dec 15, 2018
scripts fixing docs Aug 30, 2018
stubs Add numpy stub for MyPy Oct 19, 2018
syft Merge pull request #1779 from mari-linhares/issue_1760 Dec 16, 2018
test Merge pull request #1779 from mari-linhares/issue_1760 Dec 16, 2018
.flake8 Fixed error in ignore Oct 30, 2018
.gitignore Merge branch 'master' into send_msg_stats Oct 23, 2018
.pre-commit-config.yaml Everything fixed except line length and except Oct 29, 2018
.travis.yml added error list back to travis Oct 30, 2018
CONTRIBUTORS.md First Draft for a guide on how to contribute to pysyft. Dec 12, 2018
Dockerfile [DOCKER] add msgpack dependency Oct 10, 2018
LICENSE Everything fixed except line length and except Oct 29, 2018
Makefile added pandas to requirements and fixed make test Oct 16, 2018
README.md Update README.md Dec 6, 2018
SUMMARY.md Merge branch 'OpenMined-master' into fix_precision_mul_neg Oct 4, 2018
gitbook.yaml Merge branch 'OpenMined-master' into fix_precision_mul_neg Oct 4, 2018
knownissues.md GitBook: [master] 3 pages modified Oct 3, 2018
mypy.ini Add MYPYPATH to mypy.ini Oct 19, 2018
pyproject.toml Exclude stubs from black format check Oct 19, 2018
requirements.txt Communication between unknown workers results on TypeError Exception (F… Dec 16, 2018
setup.py Format code with `black` Oct 9, 2018

README.md

Introduction

Binder Build Status Chat on Slack FOSSA Status

PySyft is a Python library for secure, private Deep Learning. PySyft decouples private data from model training, using Multi-Party Computation (MPC) within PyTorch. View the paper on Arxiv. Join the movement on Slack!

See PySyft in Action

  • Emulate remote PyTorch execution - This notebook demonstrates the tensor passing between workers, though both the workers live in the same environment.

  • Emulate remote PyTorch execution using sockets: Server | Client - This notebook demonstrates the tensor passing and remote execution, with workers living in different environments.

    Note: Run Server before Client

  • Federated Learning - This notebook demonstrates the model training over distributed data (data belonging to multiple owners).

Docker

git clone https://github.com/OpenMined/PySyft.git
cd PySyft
scripts/run_docker.sh

Image size: 644MB

The container mount the examples folder on a volume so every change on the notebooks is persistent. Furthermore the container is deleted when it is stopped, in a way to facilitate development. You just have to change PySyft code, and run the run_docker.sh script to observe changes you've made on notebooks.

Installation

PySyft supports Python >= 3.6 and PyTorch 0.3.1

Pick the proper PyTorch version according to your machine: CPU | CUDA9.1 | CUDA9.0 | CUDA8.0

conda install pytorch=0.3.1 -c soumith
pip3 install -r requirements.txt
python3 setup.py install

On Windows use the following steps to install PyTorch 0.3.1-

conda install -c peterjc123 pytorch
conda install -c peterjc123 pytorch-cpu

Run Unit Tests

python3 setup.py test

Alternatively, tests can be run with

make test

Run Local Notebook Server

All the examples can be played with by running the command

make notebook

and selecting the pysyft kernel

Join the rapidly growing community of 2500+ on Slack and help us in our mission. We are really friendly people!

Organizational Contributions

We are very grateful for contributions to PySyft from the following organizations!

coMind Website & coMind Github

Disclaimer

Do NOT use this code to protect data (private or otherwise) - at present it is very insecure.

License

Apache License 2.0

FOSSA Status