Git Product home page Git Product logo

federatedlearningusingpysyft's Introduction

基于pysyft的联邦学习

项目地址

前言

联邦学习

联邦学习可以视为一种加密的分布式学习技术,它的核心是分布式学习算法与同态加密。分布式学习算法使得它能够从多方数据源获得模型的更新,同态加密则保证了中间过程的完全隐私性。

这里有一些便于理解的教程:

pysyft

pysyft是为安全、隐私深度学习而编写的python库,通过对pytorch深度学习框架增加新的特性来进行,它支持联邦学习、差分隐私以及多方计算。该项目由OpenMined负责,DropoutLabs、UDACITY等组织也参与其中的建设,github地址:pysft

关于

本项目由浙江大学VAG的刘同学编写,基于pysyft实现了联邦学习框架下的对MNIST数据集分类任务,主要目的是供小组成员学习参考,代码编写较为规范,拥有良好的可扩展性。

项目组织与说明

|-- checkpoints/
|-- data/
|	|-- __init__.py
|	|__ dataset.py
|-- datasets/
|-- logs/
|	|__logging.txt
|-- models/
|	|-- __init__.py
|	|-- BasicModule.py
|	|__ models.py
|__ utils/
|	|-- __init__.py
|	|__ tools.py
|-- config.py
|-- main.py
|-- requirements.txt
|__ README.md
  • checkpoints/: 存储模型参数
  • data/: 数据集定义、预处理
  • datasets/: 原始数据集
  • logs/: 存储训练可视化产生的数据
  • models/: 定义模型
  • utils/: 放置需要的自定义工具函数
  • config.py: 参数配置文件
  • requirements.txt: 本项目的依赖库

使用

安装依赖库

pip install -r requirements.txt	#在终端中使用以通过pip与项目文件requirements.txt安装所需依赖

本项目使用Facebook提供的科学可视化工具visdom进行训练/测试可视化

visdom	#在终端中使用以打开visdom,按照提示从浏览器进入其界面

main.py内置train(), val(), help()函数

python main.py help		#在终端中使用帮助函数,以查看使用方法
python main.py train	#在终端中使用训练函数,以默认参数配置开始联邦学习下的训练过程

federatedlearningusingpysyft's People

Contributors

zyplanet avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

federatedlearningusingpysyft's Issues

pip install -r requirements.txt issue

pip install -r requirements.txt
Collecting syft==0.1.23a1 (from -r requirements.txt (line 1))
Downloading syft-0.1.23a1-py3-none-any.whl (251 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 251.7/251.7 kB 5.2 MB/s eta 0:00:00
Collecting torchnet==0.0.4 (from -r requirements.txt (line 2))
Downloading torchnet-0.0.4.tar.gz (23 kB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
ERROR: Could not find a version that satisfies the requirement torchvision==0.3.0 (from versions: 0.1.6, 0.1.7, 0.1.8, 0.1.9, 0.2.0, 0.2.1, 0.2.2, 0.2.2.post2, 0.2.2.post3, 0.12.0, 0.13.0, 0.13.1, 0.14.0, 0.14.1, 0.15.0, 0.15.1, 0.15.2)
ERROR: No matching distribution found for torchvision==0.3.0

请问项目是否实现了联邦学习的聚合算法呢?

阅读代码的过程中发现只有在进行Data Loader数据分发的时候体现了联邦学习的**,训练完成后本地模型聚合成全局模型是如何实现的呢?而且如果要实现隐私保护(比如把参数进行同态加密)的联邦学习又该如何实现呢?
殷切希望获得您的答复,谢谢

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.