Code Monkey home page Code Monkey logo

compression-federated-learning's Introduction

Compression Federated Learning Training

This git is a compression Federated Learning (FL) training framework. The compression method is following the paper "Neural Networks Weights Quantization: Target None-retraining Ternary (TNT)". Paper Link

RUN

This framework provides two ways of FL training, which are normal training and TNT training. The Normal training is without model compression and the TNT training is inverse. Here are two examples for the two training ways, respectively.

  1. TNT training RUN: python tnt_fl_train_noniid.py --tnt_uoload True
  2. Normal training RUN: python tnt_fl_train_noniid.py

Model

All models are in the model directory, and a new model should be registered before training it. You have to add the "register function" in front of the model class, an example is provided in VGG.py and Alex.py Further, if you want to try other models do not exist in the model directory, you can place the model file in the models' directory file and register it. Moreover, you can follow the vgg.py file to make a ternary model using TNTConv2d, TNTBatchNorm2d, and TNTLinear for ternary converting convolution layer, BatchNormal layer, and Linear layer.

Dataset

Currently, the framework only provide MNIST and CIFAR10 dataset in iid.

Training config

All training parameters can be found in "config" in the "tnt_fl_train_noniid.py" file. Please try different parameters for traing different models.TNTBatchNorm2d

Prerequisites

  • python 3.6+
  • pytorch 1.10.+

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.