Skip to content

Tensorflow

Lucas edited this page Apr 26, 2021 · 8 revisions

What is Tensorflow?

"TensorFlow is an end-to-end open source platform for machine learning. It has a comprehensive, flexible ecosystem of tools, libraries and community resources that lets researchers push the state-of-the-art in ML and developers easily build and deploy ML powered applications." - TF Homepage

View this presentation for an overview of Tensorflow, Tensorflow Lite, and Tensorflow Lite Micro

Tensorflow Types

Tensorflow Federated allows for easier simulation of FedML systems.

Tensorflow Lite is a more lightweight version useful for deploying on edge devices such as RPi or smartphones

Tensorflow Lite Micro pushes the limits of a lean inference-only version with minimal footprint

Tensorflow and Federated Learning

Unfortunately, outside of simulation, Tensorflow does not currently support on-device training in their lite deployments, which would be very useful for a Federated Learning system. The ability to train on edge devices is a key component of an edge based FedML setup.

There is an offering named Tensorflow Select that enables a custom TFLite build with increased feature set, and even custom operators. Mathematically, the operations required for training could be imported in this way, but fundamentally, TFLite has no concept of training, since it is inference-only targeted.

On the bright side, on-device training is on the TFLite Roadmap as a future feature, and development of edge targeted applications is an active area of research.

Benchmarking

Tensorflow includes a benchmarking tool which is useful for profiling in a standard and reproducible manner. This tool breaks down a given tf model's inference down to specific layers and operator types for in-depth analysis. Tensorflow also includes official models to use when running benchmarks. TensorBoard is also a very powerful visualization tool for analysis of tf models.

Clone this wiki locally