Git Product home page Git Product logo

federated's Introduction

TensorFlow Federated

TensorFlow Federated (TFF) is an open-source framework for machine learning and other computations on decentralized data. TFF has been developed to facilitate open research and experimentation with Federated Learning (FL), an approach to machine learning where a shared global model is trained across many participating clients that keep their training data locally. For example, FL has been used to train prediction models for mobile keyboards without uploading sensitive typing data to servers.

TFF enables developers to use the included federated learning algorithms with their models and data, as well as to experiment with novel algorithms. The building blocks provided by TFF can also be used to implement non-learning computations, such as aggregated analytics over decentralized data.

TFF's interfaces are organized in two layers:

  • Federated Learning (FL) API The tff.learning layer offers a set of high-level interfaces that allow developers to apply the included implementations of federated training and evaluation to their existing TensorFlow models.

  • Federated Core (FC) API At the core of the system is a set of lower-level interfaces for concisely expressing novel federated algorithms by combining TensorFlow with distributed communication operators within a strongly-typed functional programming environment. This layer also serves as the foundation upon which we've built tff.learning.

TFF enables developers to declaratively express federated computations, so they could be deployed to diverse runtime environments. Included with TFF is a single-machine simulation runtime for experiments. Please visit the tutorials and try it out yourself!

Installation

See the install documentation for instructions on how to install TensorFlow Federated as a package or build TensorFlow Federated from source.

Getting Started

See the get started documentation for instructions on how to use TensorFlow Federated.

Contributing

There are a number of ways to contribute depending on what you're interested in:

  • If you are interested in developing new federated learning algorithms, the best way to start would be to study the implementations of federated averaging and evaluation in tff.learning, and to think of extensions to the existing implementation (or alternative approaches). If you have a proposal for a new algorithm, we recommend starting by staging your project in the research directory and including a colab notebook to showcase the new features.

    You may want to also develop new algorithms in your own repository. We are happy to feature pointers to academic publications and/or repos using TFF on tensorflow.org/federated.

  • If you are interested in applying federated learning, consider contributing a tutorial, a new federated dataset, or an example model that others could use for experiments and testing, or writing helper classes that others can use in setting up simulations.

  • If you are interested in helping us improve the developer experience, the best way to start would be to study the implementations behind the tff.learning API, and to reflect on how we could make the code more streamlined. You could contribute helper classes that build upon the FC API or suggest extensions to the FC API itself.

  • If you are interested in helping us develop runtime infrastructure for simulations and beyond, please wait for a future release in which we will introduce interfaces and guidelines for contributing to a simulation infrastructure.

Please be sure to review the contribution guidelines for guidelines on the coding style, best practices, etc.

Compatibility

The following table describes the compatibility between TFF and TensorFlow versions.

TensorFlow Federated TensorFlow
master tf-nightly 1.15.0.dev20190805
0.8.0 tf-nightly 1.15.0.dev20190805
0.7.0 tf-nightly 1.15.0.dev20190711
0.6.0 tf-nightly 1.15.0.dev20190626
0.5.0 tf-nightly 1.14.1.dev20190528
0.4.0 tensorflow 1.13.1
0.3.0 tensorflow 1.13.1
0.2.0 tensorflow 1.13.1
0.1.0 tensorflow 1.13.0rc2

Issues

Use GitHub issues for tracking requests and bugs.

Questions

Please direct questions to Stack Overflow using the tensorflow-federated tag.

federated's People

Contributors

michaelreneer avatar krzys-ostrowski avatar zacharygarrett avatar jkr26 avatar hbmcmahan avatar prachetit avatar tensorflower-gardener avatar swegner avatar galenmandrew avatar tensorflow-copybara avatar slowbull avatar squadrick avatar yashk2810 avatar krishnap25 avatar alexingerman avatar lc0 avatar lamberta avatar eglanz avatar myselph avatar jsimsa avatar github30 avatar lilies avatar jpgard avatar stefanom avatar qlzh727 avatar saxenasaurabh avatar kairouzp avatar mcognetta avatar kkimdev avatar tabrizian avatar

Watchers

 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.