Giter Site home page Giter Site logo

juba-agoun / fleet Goto Github PK

View Code? Open in Web Editor NEW

This project forked from gdamaskinos/fleet

0.0 0.0 0.0 999 KB

Online Federated Learning.

License: MIT License

Shell 0.74% C++ 36.03% Python 4.43% C 0.93% Objective-C 0.04% Java 57.39% Makefile 0.24% CMake 0.20%

fleet's Introduction

FLeet

Author: Georgios Damaskinos ([email protected])

FLeet is a middleware introduced in FLeet: Online Federated Learning via Staleness Awareness and Performance Prediction.

Quick Start

The following steps train a CNN on the non-IID MNIST dataset.

  1. Setup
    • Ubuntu 18.04.3 LTS
    • gcc 7.5
    • Python 3.6
    • Java 1.8.0_77
    • Maven 3.6.3
    • Gradle 4.10.1
    • Android API level 25
    • Create and start an Android emulator
    • Export variables:
      • JAVA_HOME
      • ANDROID_HOME
    • Download Python numpy package
  2. Download and extract the 4 files of the MNIST dataset
  3. Compile, deploy and run FLeet
    ./local_deploy.sh 5554 9992 ~/log /path/to/mnist/ 0 0 1000 3000 0.0005 1 1 0 0 0 0 0
    

Detailed information about the deployment options for FLeet is available here.

Usage

The following contains information about each module of FLeet along with instructions for implementing a new application.

Server

Performs the descent computation and updates the model

Driver

Initializes the Server and performs a periodic evaluation

Android Client

Performs the gradient computation

Existing applications

cppNN

Image classification application based on Convolutional Neural Networks and written in C++.

MLP

Image classification application based on multilayer perceptron and written in Java.

LR

Facebook check-in prediction application based on logistic regression and written in Java.

DL4J

Port of DL4J library on FLeet.

Datasets

MNIST

See Quick Start.

EMNIST

  • Download Python dependencies:
    • Sklearn
    • Scipy
    • Numpy
  • python emnistParser.py --help
  • For parsing into FLeet change to the DL4J app:
    • See all TODO notes in the Driver.
    • Change the application in the Server and Client (see Usage).
    • Give the output of the parser as input dataset for FLeet.

CIFAR

fleet's People

Contributors

gdamaskinos avatar dependabot[bot] 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.