Code Monkey home page Code Monkey 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

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.