Repository files navigation

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 how to contribute.

Compatibility

TensorFlow

The following table describes the compatibility between the TensorFlow Federated and TensorFlow Python packages, meaning that a version of the TensorFlow Federated package was tested against a version of the TensorFlow before it was released. It is possible that a newer version of the TensorFlow Federated package will not work with an older version of the TensorFlow package and vice versa.

TensorFlow FederatedTensorFlow
0.18.0tensorflow 2.4.0
0.17.0tensorflow 2.3.0
0.16.1tensorflow 2.2.0
0.16.0tensorflow 2.2.0
0.15.0tensorflow 2.2.0
0.14.0tensorflow 2.2.0
0.13.1tensorflow 2.1.0
0.13.0tensorflow 2.1.0
0.12.0tensorflow 2.1.0
0.11.0tensorflow 2.0.0
0.10.1tensorflow 2.0.0
0.10.0tensorflow 2.0.0
0.9.0tf-nightly 2.1.0.dev20191005
0.8.01tf-nightly 1.15.0.dev20190805
0.7.0tf-nightly 1.15.0.dev20190711
0.6.0tf-nightly 1.15.0.dev20190626
0.5.0tf-nightly 1.14.1.dev20190528
0.4.0tensorflow 1.13.1
0.3.0tensorflow 1.13.1
0.2.0tensorflow 1.13.1
0.1.0tensorflow 1.13.0rc2

Python

See the Programming Language classifiers on the PyPI tensorflow-federated project for information about the compatibility between TensorFlow Federated and Python versions.

Issues

Use GitHub issues for tracking requests and bugs.

Questions

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

1 TensorFlow Federated 0.8.0 fails to pip install pip install tensorflow-federated==0.8.0 because it requires tf-nightly==1.15.0.dev20190805, which is no longer available.

About

A framework for implementing federated learning

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

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 how to contribute.

Compatibility

TensorFlow

The following table describes the compatibility between the TensorFlow Federated and TensorFlow Python packages, meaning that a version of the TensorFlow Federated package was tested against a version of the TensorFlow before it was released. It is possible that a newer version of the TensorFlow Federated package will not work with an older version of the TensorFlow package and vice versa.

TensorFlow FederatedTensorFlow
0.18.0tensorflow 2.4.0
0.17.0tensorflow 2.3.0
0.16.1tensorflow 2.2.0
0.16.0tensorflow 2.2.0
0.15.0tensorflow 2.2.0
0.14.0tensorflow 2.2.0
0.13.1tensorflow 2.1.0
0.13.0tensorflow 2.1.0
0.12.0tensorflow 2.1.0
0.11.0tensorflow 2.0.0
0.10.1tensorflow 2.0.0
0.10.0tensorflow 2.0.0
0.9.0tf-nightly 2.1.0.dev20191005
0.8.01tf-nightly 1.15.0.dev20190805
0.7.0tf-nightly 1.15.0.dev20190711
0.6.0tf-nightly 1.15.0.dev20190626
0.5.0tf-nightly 1.14.1.dev20190528
0.4.0tensorflow 1.13.1
0.3.0tensorflow 1.13.1
0.2.0tensorflow 1.13.1
0.1.0tensorflow 1.13.0rc2

Python

See the Programming Language classifiers on the PyPI tensorflow-federated project for information about the compatibility between TensorFlow Federated and Python versions.

Issues

Use GitHub issues for tracking requests and bugs.

Questions

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

1 TensorFlow Federated 0.8.0 fails to pip install pip install tensorflow-federated==0.8.0 because it requires tf-nightly==1.15.0.dev20190805, which is no longer available.

About

A framework for implementing federated learning

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

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 how to contribute.

Compatibility

TensorFlow

The following table describes the compatibility between the TensorFlow Federated and TensorFlow Python packages, meaning that a version of the TensorFlow Federated package was tested against a version of the TensorFlow before it was released. It is possible that a newer version of the TensorFlow Federated package will not work with an older version of the TensorFlow package and vice versa.

TensorFlow FederatedTensorFlow
0.18.0tensorflow 2.4.0
0.17.0tensorflow 2.3.0
0.16.1tensorflow 2.2.0
0.16.0tensorflow 2.2.0
0.15.0tensorflow 2.2.0
0.14.0tensorflow 2.2.0
0.13.1tensorflow 2.1.0
0.13.0tensorflow 2.1.0
0.12.0tensorflow 2.1.0
0.11.0tensorflow 2.0.0
0.10.1tensorflow 2.0.0
0.10.0tensorflow 2.0.0
0.9.0tf-nightly 2.1.0.dev20191005
0.8.01tf-nightly 1.15.0.dev20190805
0.7.0tf-nightly 1.15.0.dev20190711
0.6.0tf-nightly 1.15.0.dev20190626
0.5.0tf-nightly 1.14.1.dev20190528
0.4.0tensorflow 1.13.1
0.3.0tensorflow 1.13.1
0.2.0tensorflow 1.13.1
0.1.0tensorflow 1.13.0rc2

Python

See the Programming Language classifiers on the PyPI tensorflow-federated project for information about the compatibility between TensorFlow Federated and Python versions.

Issues

Use GitHub issues for tracking requests and bugs.

Questions

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

1 TensorFlow Federated 0.8.0 fails to pip install pip install tensorflow-federated==0.8.0 because it requires tf-nightly==1.15.0.dev20190805, which is no longer available.

About

A framework for implementing federated learning

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

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 how to contribute.

Compatibility

TensorFlow

The following table describes the compatibility between the TensorFlow Federated and TensorFlow Python packages, meaning that a version of the TensorFlow Federated package was tested against a version of the TensorFlow before it was released. It is possible that a newer version of the TensorFlow Federated package will not work with an older version of the TensorFlow package and vice versa.

TensorFlow FederatedTensorFlow
0.18.0tensorflow 2.4.0
0.17.0tensorflow 2.3.0
0.16.1tensorflow 2.2.0
0.16.0tensorflow 2.2.0
0.15.0tensorflow 2.2.0
0.14.0tensorflow 2.2.0
0.13.1tensorflow 2.1.0
0.13.0tensorflow 2.1.0
0.12.0tensorflow 2.1.0
0.11.0tensorflow 2.0.0
0.10.1tensorflow 2.0.0
0.10.0tensorflow 2.0.0
0.9.0tf-nightly 2.1.0.dev20191005
0.8.01tf-nightly 1.15.0.dev20190805
0.7.0tf-nightly 1.15.0.dev20190711
0.6.0tf-nightly 1.15.0.dev20190626
0.5.0tf-nightly 1.14.1.dev20190528
0.4.0tensorflow 1.13.1
0.3.0tensorflow 1.13.1
0.2.0tensorflow 1.13.1
0.1.0tensorflow 1.13.0rc2

Python

See the Programming Language classifiers on the PyPI tensorflow-federated project for information about the compatibility between TensorFlow Federated and Python versions.

Issues

Use GitHub issues for tracking requests and bugs.

Questions

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

1 TensorFlow Federated 0.8.0 fails to pip install pip install tensorflow-federated==0.8.0 because it requires tf-nightly==1.15.0.dev20190805, which is no longer available.

About

A framework for implementing federated learning

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

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 how to contribute.

Compatibility

TensorFlow

The following table describes the compatibility between the TensorFlow Federated and TensorFlow Python packages, meaning that a version of the TensorFlow Federated package was tested against a version of the TensorFlow before it was released. It is possible that a newer version of the TensorFlow Federated package will not work with an older version of the TensorFlow package and vice versa.

TensorFlow FederatedTensorFlow
0.18.0tensorflow 2.4.0
0.17.0tensorflow 2.3.0
0.16.1tensorflow 2.2.0
0.16.0tensorflow 2.2.0
0.15.0tensorflow 2.2.0
0.14.0tensorflow 2.2.0
0.13.1tensorflow 2.1.0
0.13.0tensorflow 2.1.0
0.12.0tensorflow 2.1.0
0.11.0tensorflow 2.0.0
0.10.1tensorflow 2.0.0
0.10.0tensorflow 2.0.0
0.9.0tf-nightly 2.1.0.dev20191005
0.8.01tf-nightly 1.15.0.dev20190805
0.7.0tf-nightly 1.15.0.dev20190711
0.6.0tf-nightly 1.15.0.dev20190626
0.5.0tf-nightly 1.14.1.dev20190528
0.4.0tensorflow 1.13.1
0.3.0tensorflow 1.13.1
0.2.0tensorflow 1.13.1
0.1.0tensorflow 1.13.0rc2

Python

See the Programming Language classifiers on the PyPI tensorflow-federated project for information about the compatibility between TensorFlow Federated and Python versions.

Issues

Use GitHub issues for tracking requests and bugs.

Questions

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

1 TensorFlow Federated 0.8.0 fails to pip install pip install tensorflow-federated==0.8.0 because it requires tf-nightly==1.15.0.dev20190805, which is no longer available.

About

A framework for implementing federated learning

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

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 how to contribute.

Compatibility

TensorFlow

The following table describes the compatibility between the TensorFlow Federated and TensorFlow Python packages, meaning that a version of the TensorFlow Federated package was tested against a version of the TensorFlow before it was released. It is possible that a newer version of the TensorFlow Federated package will not work with an older version of the TensorFlow package and vice versa.

TensorFlow FederatedTensorFlow
0.18.0tensorflow 2.4.0
0.17.0tensorflow 2.3.0
0.16.1tensorflow 2.2.0
0.16.0tensorflow 2.2.0
0.15.0tensorflow 2.2.0
0.14.0tensorflow 2.2.0
0.13.1tensorflow 2.1.0
0.13.0tensorflow 2.1.0
0.12.0tensorflow 2.1.0
0.11.0tensorflow 2.0.0
0.10.1tensorflow 2.0.0
0.10.0tensorflow 2.0.0
0.9.0tf-nightly 2.1.0.dev20191005
0.8.01tf-nightly 1.15.0.dev20190805
0.7.0tf-nightly 1.15.0.dev20190711
0.6.0tf-nightly 1.15.0.dev20190626
0.5.0tf-nightly 1.14.1.dev20190528
0.4.0tensorflow 1.13.1
0.3.0tensorflow 1.13.1
0.2.0tensorflow 1.13.1
0.1.0tensorflow 1.13.0rc2

Python

See the Programming Language classifiers on the PyPI tensorflow-federated project for information about the compatibility between TensorFlow Federated and Python versions.

Issues

Use GitHub issues for tracking requests and bugs.

Questions

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

1 TensorFlow Federated 0.8.0 fails to pip install pip install tensorflow-federated==0.8.0 because it requires tf-nightly==1.15.0.dev20190805, which is no longer available.

About

A framework for implementing federated learning

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

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 how to contribute.

Compatibility

TensorFlow

The following table describes the compatibility between the TensorFlow Federated and TensorFlow Python packages, meaning that a version of the TensorFlow Federated package was tested against a version of the TensorFlow before it was released. It is possible that a newer version of the TensorFlow Federated package will not work with an older version of the TensorFlow package and vice versa.

TensorFlow FederatedTensorFlow
0.18.0tensorflow 2.4.0
0.17.0tensorflow 2.3.0
0.16.1tensorflow 2.2.0
0.16.0tensorflow 2.2.0
0.15.0tensorflow 2.2.0
0.14.0tensorflow 2.2.0
0.13.1tensorflow 2.1.0
0.13.0tensorflow 2.1.0
0.12.0tensorflow 2.1.0
0.11.0tensorflow 2.0.0
0.10.1tensorflow 2.0.0
0.10.0tensorflow 2.0.0
0.9.0tf-nightly 2.1.0.dev20191005
0.8.01tf-nightly 1.15.0.dev20190805
0.7.0tf-nightly 1.15.0.dev20190711
0.6.0tf-nightly 1.15.0.dev20190626
0.5.0tf-nightly 1.14.1.dev20190528
0.4.0tensorflow 1.13.1
0.3.0tensorflow 1.13.1
0.2.0tensorflow 1.13.1
0.1.0tensorflow 1.13.0rc2

Python

See the Programming Language classifiers on the PyPI tensorflow-federated project for information about the compatibility between TensorFlow Federated and Python versions.

Issues

Use GitHub issues for tracking requests and bugs.

Questions

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

1 TensorFlow Federated 0.8.0 fails to pip install pip install tensorflow-federated==0.8.0 because it requires tf-nightly==1.15.0.dev20190805, which is no longer available.

About

A framework for implementing federated learning

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

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 how to contribute.

Compatibility

TensorFlow

The following table describes the compatibility between the TensorFlow Federated and TensorFlow Python packages, meaning that a version of the TensorFlow Federated package was tested against a version of the TensorFlow before it was released. It is possible that a newer version of the TensorFlow Federated package will not work with an older version of the TensorFlow package and vice versa.

TensorFlow FederatedTensorFlow
0.18.0tensorflow 2.4.0
0.17.0tensorflow 2.3.0
0.16.1tensorflow 2.2.0
0.16.0tensorflow 2.2.0
0.15.0tensorflow 2.2.0
0.14.0tensorflow 2.2.0
0.13.1tensorflow 2.1.0
0.13.0tensorflow 2.1.0
0.12.0tensorflow 2.1.0
0.11.0tensorflow 2.0.0
0.10.1tensorflow 2.0.0
0.10.0tensorflow 2.0.0
0.9.0tf-nightly 2.1.0.dev20191005
0.8.01tf-nightly 1.15.0.dev20190805
0.7.0tf-nightly 1.15.0.dev20190711
0.6.0tf-nightly 1.15.0.dev20190626
0.5.0tf-nightly 1.14.1.dev20190528
0.4.0tensorflow 1.13.1
0.3.0tensorflow 1.13.1
0.2.0tensorflow 1.13.1
0.1.0tensorflow 1.13.0rc2

Python

See the Programming Language classifiers on the PyPI tensorflow-federated project for information about the compatibility between TensorFlow Federated and Python versions.

Issues

Use GitHub issues for tracking requests and bugs.

Questions

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

1 TensorFlow Federated 0.8.0 fails to pip install pip install tensorflow-federated==0.8.0 because it requires tf-nightly==1.15.0.dev20190805, which is no longer available.

About

A framework for implementing federated learning

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages