SlideShare a Scribd company logo
1 of 34
Download to read offline
Copyright © 2022 Google and BDTI 1
TensorFlow Lite for
Microcontrollers: Recent
Developments
Advait Jain
Staff Software Engineer
Google
David Davis
Senior Embedded Software Engineer
BDTI
John Withers
Automation and Systems Engineer
BDTI
Copyright © 2022 Google and BDTI
Outline
• 10,000-foot view of TensorFlow Lite Micro
• BDTI/Google Collaboration
• Updated Arduino port of TFLM
• New Kernel Operators
• Improved CI via GitHub Actions
2
Copyright © 2022 Google and BDTI
TensorFlow Family (10,000-Foot view)
3
• TensorFlow (platform & ecosystem)
• End-to-end open source platform for machine learning
• 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
• TensorFlow (library)
• The core open source library to help you develop and train ML models
• TensorFlow Lite
• Library for deploying models on mobile, microcontrollers and other edge devices
• TensorFlow Lite Micro (TFLM)
• Library to run machine learning models on DSPs, microcontrollers, and other embedded targets with a
small memory footprint and very low power usage
Copyright © 2022 Google and BDTI
• Library designed to run machine learning models on embedded targets without any OS support, no dynamic memory
allocation and a reduced set of C++11 standard libraries
• Leverages the model optimization tools from the TensorFlow ecosystem and has additional embedded-specific offline and
online optimizations to reduce the memory footprint from both the model and the framework
• Integrates with a number of community contributed highly-optimized hardware-specific kernel implementations
• All the TFLM modules are tested on a variety of targets and toolchains via software emulation for each pull request to
the TFLM GitHub repository
• TFLM provides tools, CI, and examples for how to integrate it into various embedded development environments
TensorFlow Lite Micro (10,000-Foot View)
4
BDTI/Google Collaboration:
Updated TFLM Port to Arduino
Copyright © 2022 Google and BDTI
Google and BDTI have created a new repository with platform specific example
code for the Arduino Nano 33 BLE Sense.
The code base is synchronized nightly from the TFLM repository using Github
workflows.
All example applications are independently maintained within the Arduino examples
repository.
Includes support for CMSIS_NN.
Code in this repository can be used with both the Arduino IDE and CLI. With single
step Git cloning of the repository into the Arduino library folder, TFLM is ready for
use.
TFLM Arduino Examples: New Repository
6
Copyright © 2022 Google and BDTI
Repository adheres to this guideline document:
https://github.com/tensorflow/tflite-
micro/blob/main/tensorflow/lite/micro/docs/new_platform_support.md
Nightly synchronization script and workflow:
https://github.com/tensorflow/tflite-micro-arduino-
examples/blob/main/scripts/sync_from_tflite_micro.sh
https://github.com/tensorflow/tflite-micro-arduino-
examples/blob/main/.github/workflows/sync.yml
TFLM Arduino Examples: New Repository (cont.)
7
Copyright © 2022 Google and BDTI
Arduino Nano 33 BLE Sense Tiny Machine Learning Kit
(with Nano 33 BLE Sense)
TFLM Arduino Examples: Tested Devices
8
Copyright © 2022 Google and BDTI
TFLM Arduino Examples: Easy Install
9
Copyright © 2022 Google and BDTI
TFLM Arduino Examples: hello_world
10
x: 0 ~ 2𝜋
Inference
sin(x)
Copyright © 2022 Google and BDTI
The TFLM arena memory contains:
• Modifiable tensors
• Kernel operator execution graph
• Kernel operator and interpreter data structures
The arena memory is statically allocated within the application:
constexpr int kTensorArenaSize = 2000;
uint8_t tensor_arena[kTensorArenaSize];
Deeper Dive: Arduino hello_world
11
Copyright © 2022 Google and BDTI
tflite::InitializeTarget();
// Set up logging.
static tflite::MicroErrorReporter micro_error_reporter;
error_reporter = &micro_error_reporter;
// Map the model into a usable data structure. This doesn't involve any
// copying or parsing, it's a very lightweight operation.
model = tflite::GetModel(g_model);
// This pulls in all the operation implementations we need.
static tflite::AllOpsResolver resolver;
Deeper Dive: Arduino hello_world
12
Copyright © 2022 Google and BDTI
The kernel interpreter needs to be instantiated:
// Build an interpreter to run the model with.
static tflite::MicroInterpreter static_interpreter(
model, resolver, tensor_arena, kTensorArenaSize, error_reporter);
interpreter = &static_interpreter;
Then the kernel interpreter initialization and tensor allocation occurs:
// Allocate memory from the tensor_arena for the model's tensors.
TfLiteStatus allocate_status = interpreter->AllocateTensors();
Deeper Dive: Arduino hello_world
13
Copyright © 2022 Google and BDTI
Now we need access to the input tensor so we can fill it with data:
// Obtain pointer to the model's input tensor.
input = interpreter->input(0);
Since our data is quantized, we need to convert from floating point to int8:
// Quantize the input from floating-point to integer
int8_t x_quantized = x / input->params.scale + input->params.zero_point;
// Place the quantized input in the model's input tensor
input->data.int8[0] = x_quantized;
Deeper Dive: Arduino hello_world
14
Copyright © 2022 Google and BDTI
Time to put the TensorFlow Lite Micro kernel interpreter to work:
// Run inference, and report any error
TfLiteStatus invoke_status = interpreter->Invoke();
if (invoke_status != kTfLiteOk) {
TF_LITE_REPORT_ERROR(error_reporter, "Invoke failed on x: %fn",
static_cast<double>(x));
return;
}
Deeper Dive: Arduino hello_world
15
Copyright © 2022 Google and BDTI
Finally, we get the output tensor so we can see our inference result:
// Obtain pointer to the model's output tensor.
output = interpreter->output(0);
Since our data is quantized, we need to convert it back to floating point:
// Obtain the quantized output from model's output tensor
int8_t y_quantized = output->data.int8[0];
// Dequantize the output from integer to floating-point
float y = (y_quantized - output->params.zero_point) * output->params.scale;
Deeper Dive: Arduino hello_world
16
Copyright © 2022 Google and BDTI
Arduino IDE serial plotter output:
Deeper Dive: Arduino hello_world
17
Copyright © 2022 Google and BDTI
TFLM Arduino Examples: magic_wand
18
3D IMU Motion Data
Inference
2D Raster Projection (32x32)
0-9 Scores
Copyright © 2022 Google and BDTI
TFLM Arduino Examples: micro_speech
19
PCM Audio
Inference
1 second moving average
Spectrogram
Yes/No/Unknown/Silence
Copyright © 2022 Google and BDTI
• Mobilenet_v1 model
• 31 Kilobytes size
• 470,000 parameters
*Currently supported only in
serial test mode
TFLM Arduino Examples: person_detection
20
Monochrome Image (96x96)
Inference
Person/No-person Scores
Copyright © 2022 Google and BDTI
BDTI contributed a new module, test-over-serial module:
https://github.com/tensorflow/tflite-micro-arduino-examples/tree/main/src/test_over_serial
This module allows inference data to be supplied to TFLM applications over a serial
connection. The module provides application testing, on device, independent of
hardware data acquisition.
A Python script sends data specified by a configuration file, and receives inference
results from the device. This script is suitable for CI automation.
python3 scripts/test_over_serial.py --example person_detection --verbose test
TFLM Arduino Examples: Test Over Serial
21
BDTI/Google Collaboration:
New Kernels with Porting Guide
Copyright © 2022 Google and BDTI
BDTI ported multiple kernel reference
operators to TFLM from TFLite.
Float32 and Int8 support are
implemented where appropriate.
ADD_N
CAST
CUMSUM
DEPTH_TO_SPACE
DIV
ELU
TFLM Kernel Operators
23
EXP
EXPAND_DIMS
FILL
FLOOR_DIV
FLOOR_MOD
GATHER
GATHER_ND
L2_POOL_2D
LEAKY_RELU
LOG_SOFTMAX
SPACE_TO_DEPTH
Copyright © 2022 Google and BDTI
To minimize RAM usage, TFLM keeps tensor dimension data in non-volatile memory
(flash, ROM, etc). BDTI has contributed a utility function to accommodate kernel
operators that need to modify tensor dimensions. The following kernel operators
use this function:
• SPACE_TO_DEPTH
• DEPTH_TO_SPACE
• GATHER
• L2_POOL_2D
TfLiteStatus CreateWritableTensorDimsWithCopy(TfLiteContext* context,
TfLiteTensor* tensor,
TfLiteEvalTensor* eval_tensor);
Changing Tensor Shape/Dimensions
24
Copyright © 2022 Google and BDTI
• New porting guide added: https://github.com/tensorflow/tflite-
micro/blob/main/tensorflow/lite/micro/docs/porting_reference_ops.md
• Step-by-step explanation with Github Pull Requests from actual kernel operator
port
• FAQ added for common questions on memory allocation by kernel operators
Kernel Operator Porting Guide
25
BDTI/Google Collaboration:
GitHub Tooling for Continuous Integration
Copyright © 2022 Google and BDTI
Why GitHub Tooling
27
● In April 2021 we started refactoring the TFLM code from the TensorFlow
repository into a stand-alone TFLM repository.
● Goals for the CI infrastructure included
○ Ability to run tests with various toolchains and a variety of simulated
embedded targets
○ Full visibility into the infrastructure for TFLM’s community contributors
○ Blueprint of a CI setup that could be replicated and customized for TFLM
ports to various hardware and dev boards
○ Reduce the friction in the PR merging process for both contributors and
maintainers
Copyright © 2022 Google and BDTI
Github Actions
● Wide range of triggers
● Temporary virtual environment
● Large ecosystem of reusable components
CI Components
28
Copyright © 2022 Google and BDTI
GHCR and Docker
● Github Container Repository
● Docker allows easier local testing on developer machines
● Modularizing tests
CI Components
29
Copyright © 2022 Google and BDTI
CI Components
30
An extensive series of
containerized tests
are run against the
PR
Copyright © 2022 Google and BDTI
Mergify
● Merge queue
● Many PRs end up awaiting reviewer approval
● Continues through merge induced test failures
CI Components
31
Copyright © 2022 Google and BDTI
Developer and Maintainer Story
● Raise a PR to the TFLM repository
● Address reviewer comments
● PR gets merged without additional work from the PR authors
○ E.g., no need to update main when a different PR is merged
● Minimal overhead for the repo maintainers
Subtleties
● Security model for PRs from forks takes a bit of study
● Creative workflows were needed to manage security and community
contributions
● Triggers need enhancement
Developer Story and Subtleties
32
Copyright © 2022 Google and BDTI
TensorFlow Lite Micro
https://github.com/tensorflow/tflite-micro
Arduino Examples
https://github.com/tensorflow/tflite-micro-arduino-examples
Contact the TFLM team
https://github.com/tensorflow/tflite-micro#getting-help
Additional Resources
33
2022 Embedded Vision Summit
To see the magic wand demo, stop by
the BDTI booth (#413) on the
Technology Exhibits floor!
Copyright © 2022 Google and BDTI
About BDTI
34
The industry’s trusted source for engineering, analysis, and advice for
embedded AI, deep learning, and computer vision. Specialties include:
● Algorithm design and implementation
● Processor selection
● Development tool and processor evaluations
● Training and coaching on embedded AI technology
Come see us in Booth 413!

More Related Content

What's hot

"Quantizing Deep Networks for Efficient Inference at the Edge," a Presentatio...
"Quantizing Deep Networks for Efficient Inference at the Edge," a Presentatio..."Quantizing Deep Networks for Efficient Inference at the Edge," a Presentatio...
"Quantizing Deep Networks for Efficient Inference at the Edge," a Presentatio...Edge AI and Vision Alliance
 
Enabling Power-Efficient AI Through Quantization
Enabling Power-Efficient AI Through QuantizationEnabling Power-Efficient AI Through Quantization
Enabling Power-Efficient AI Through QuantizationQualcomm Research
 
Enabling on-device learning at scale
Enabling on-device learning at scaleEnabling on-device learning at scale
Enabling on-device learning at scaleQualcomm Research
 
Introduction to Keras
Introduction to KerasIntroduction to Keras
Introduction to KerasJohn Ramey
 
Transformer in Vision
Transformer in VisionTransformer in Vision
Transformer in VisionSangmin Woo
 
Backpropagation in RNN and LSTM
Backpropagation in RNN and LSTMBackpropagation in RNN and LSTM
Backpropagation in RNN and LSTMHimanshuSingh1370
 
Neuromorphic computing for neural networks
Neuromorphic computing for neural networksNeuromorphic computing for neural networks
Neuromorphic computing for neural networksClaudio Gallicchio
 
ONNX - The Lingua Franca of Deep Learning
ONNX - The Lingua Franca of Deep LearningONNX - The Lingua Franca of Deep Learning
ONNX - The Lingua Franca of Deep LearningHagay Lupesko
 
Deep learning with tensorflow
Deep learning with tensorflowDeep learning with tensorflow
Deep learning with tensorflowCharmi Chokshi
 
Interpretable Machine Learning Using LIME Framework - Kasia Kulma (PhD), Data...
Interpretable Machine Learning Using LIME Framework - Kasia Kulma (PhD), Data...Interpretable Machine Learning Using LIME Framework - Kasia Kulma (PhD), Data...
Interpretable Machine Learning Using LIME Framework - Kasia Kulma (PhD), Data...Sri Ambati
 
Semantic Segmentation on Satellite Imagery
Semantic Segmentation on Satellite ImagerySemantic Segmentation on Satellite Imagery
Semantic Segmentation on Satellite ImageryRAHUL BHOJWANI
 
Intro to deep learning
Intro to deep learning Intro to deep learning
Intro to deep learning David Voyles
 
Introduction to Visual transformers
Introduction to Visual transformers Introduction to Visual transformers
Introduction to Visual transformers leopauly
 
Image segmentation with deep learning
Image segmentation with deep learningImage segmentation with deep learning
Image segmentation with deep learningAntonio Rueda-Toicen
 
Convolutional Neural Networks (CNN)
Convolutional Neural Networks (CNN)Convolutional Neural Networks (CNN)
Convolutional Neural Networks (CNN)Gaurav Mittal
 
ResNet basics (Deep Residual Network for Image Recognition)
ResNet basics (Deep Residual Network for Image Recognition)ResNet basics (Deep Residual Network for Image Recognition)
ResNet basics (Deep Residual Network for Image Recognition)Sanjay Saha
 
Deep Learning - Convolutional Neural Networks
Deep Learning - Convolutional Neural NetworksDeep Learning - Convolutional Neural Networks
Deep Learning - Convolutional Neural NetworksChristian Perone
 

What's hot (20)

"Quantizing Deep Networks for Efficient Inference at the Edge," a Presentatio...
"Quantizing Deep Networks for Efficient Inference at the Edge," a Presentatio..."Quantizing Deep Networks for Efficient Inference at the Edge," a Presentatio...
"Quantizing Deep Networks for Efficient Inference at the Edge," a Presentatio...
 
OpenVINO introduction
OpenVINO introductionOpenVINO introduction
OpenVINO introduction
 
On-device ML with TFLite
On-device ML with TFLiteOn-device ML with TFLite
On-device ML with TFLite
 
Enabling Power-Efficient AI Through Quantization
Enabling Power-Efficient AI Through QuantizationEnabling Power-Efficient AI Through Quantization
Enabling Power-Efficient AI Through Quantization
 
Enabling on-device learning at scale
Enabling on-device learning at scaleEnabling on-device learning at scale
Enabling on-device learning at scale
 
Introduction to Keras
Introduction to KerasIntroduction to Keras
Introduction to Keras
 
Transformer in Vision
Transformer in VisionTransformer in Vision
Transformer in Vision
 
Backpropagation in RNN and LSTM
Backpropagation in RNN and LSTMBackpropagation in RNN and LSTM
Backpropagation in RNN and LSTM
 
Neuromorphic computing for neural networks
Neuromorphic computing for neural networksNeuromorphic computing for neural networks
Neuromorphic computing for neural networks
 
ONNX - The Lingua Franca of Deep Learning
ONNX - The Lingua Franca of Deep LearningONNX - The Lingua Franca of Deep Learning
ONNX - The Lingua Franca of Deep Learning
 
Deep learning with tensorflow
Deep learning with tensorflowDeep learning with tensorflow
Deep learning with tensorflow
 
Introduction to OpenCV
Introduction to OpenCVIntroduction to OpenCV
Introduction to OpenCV
 
Interpretable Machine Learning Using LIME Framework - Kasia Kulma (PhD), Data...
Interpretable Machine Learning Using LIME Framework - Kasia Kulma (PhD), Data...Interpretable Machine Learning Using LIME Framework - Kasia Kulma (PhD), Data...
Interpretable Machine Learning Using LIME Framework - Kasia Kulma (PhD), Data...
 
Semantic Segmentation on Satellite Imagery
Semantic Segmentation on Satellite ImagerySemantic Segmentation on Satellite Imagery
Semantic Segmentation on Satellite Imagery
 
Intro to deep learning
Intro to deep learning Intro to deep learning
Intro to deep learning
 
Introduction to Visual transformers
Introduction to Visual transformers Introduction to Visual transformers
Introduction to Visual transformers
 
Image segmentation with deep learning
Image segmentation with deep learningImage segmentation with deep learning
Image segmentation with deep learning
 
Convolutional Neural Networks (CNN)
Convolutional Neural Networks (CNN)Convolutional Neural Networks (CNN)
Convolutional Neural Networks (CNN)
 
ResNet basics (Deep Residual Network for Image Recognition)
ResNet basics (Deep Residual Network for Image Recognition)ResNet basics (Deep Residual Network for Image Recognition)
ResNet basics (Deep Residual Network for Image Recognition)
 
Deep Learning - Convolutional Neural Networks
Deep Learning - Convolutional Neural NetworksDeep Learning - Convolutional Neural Networks
Deep Learning - Convolutional Neural Networks
 

Similar to “TensorFlow Lite for Microcontrollers (TFLM): Recent Developments,” a Presentation from BDTI and Google

DevOps Days Boston 2017: Real-world Kubernetes for DevOps
DevOps Days Boston 2017: Real-world Kubernetes for DevOpsDevOps Days Boston 2017: Real-world Kubernetes for DevOps
DevOps Days Boston 2017: Real-world Kubernetes for DevOpsAmbassador Labs
 
Serving HTC Users in Kubernetes by Leveraging HTCondor
Serving HTC Users in Kubernetes by Leveraging HTCondorServing HTC Users in Kubernetes by Leveraging HTCondor
Serving HTC Users in Kubernetes by Leveraging HTCondorIgor Sfiligoi
 
Jacob Marble [InfluxData] | Observability with InfluxDB IOx and OpenTelemetry...
Jacob Marble [InfluxData] | Observability with InfluxDB IOx and OpenTelemetry...Jacob Marble [InfluxData] | Observability with InfluxDB IOx and OpenTelemetry...
Jacob Marble [InfluxData] | Observability with InfluxDB IOx and OpenTelemetry...InfluxData
 
Deploy STM32 family on Zephyr - SFO17-102
Deploy STM32 family on Zephyr - SFO17-102Deploy STM32 family on Zephyr - SFO17-102
Deploy STM32 family on Zephyr - SFO17-102Linaro
 
DATE 2020: Design, Automation and Test in Europe Conference
DATE 2020: Design, Automation and Test in Europe ConferenceDATE 2020: Design, Automation and Test in Europe Conference
DATE 2020: Design, Automation and Test in Europe ConferenceLEGATO project
 
Matteo Valoriani, Antimo Musone - The Future of Factory - Codemotion Rome 2019
Matteo Valoriani, Antimo Musone - The Future of Factory - Codemotion Rome 2019Matteo Valoriani, Antimo Musone - The Future of Factory - Codemotion Rome 2019
Matteo Valoriani, Antimo Musone - The Future of Factory - Codemotion Rome 2019Codemotion
 
Integrating Puppet and Gitolite for sysadmins cooperations
Integrating Puppet and Gitolite for sysadmins cooperationsIntegrating Puppet and Gitolite for sysadmins cooperations
Integrating Puppet and Gitolite for sysadmins cooperationsLuca Mazzaferro
 
EKON 25 Python4Delphi_mX4
EKON 25 Python4Delphi_mX4EKON 25 Python4Delphi_mX4
EKON 25 Python4Delphi_mX4Max Kleiner
 
Developing new zynq based instruments
Developing new zynq based instrumentsDeveloping new zynq based instruments
Developing new zynq based instrumentsGraham NAYLOR
 
Python Data Science and Machine Learning at Scale with Intel and Anaconda
Python Data Science and Machine Learning at Scale with Intel and AnacondaPython Data Science and Machine Learning at Scale with Intel and Anaconda
Python Data Science and Machine Learning at Scale with Intel and AnacondaIntel® Software
 
Introduction to Git for Network Engineers (Lab Guide)
Introduction to Git for Network Engineers (Lab Guide)Introduction to Git for Network Engineers (Lab Guide)
Introduction to Git for Network Engineers (Lab Guide)Joel W. King
 
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...Ambassador Labs
 
IoT Prototyping using BBB and Debian
IoT Prototyping using BBB and DebianIoT Prototyping using BBB and Debian
IoT Prototyping using BBB and DebianMender.io
 
“Khronos Standard APIs for Accelerating Vision and Inferencing,” a Presentati...
“Khronos Standard APIs for Accelerating Vision and Inferencing,” a Presentati...“Khronos Standard APIs for Accelerating Vision and Inferencing,” a Presentati...
“Khronos Standard APIs for Accelerating Vision and Inferencing,” a Presentati...Edge AI and Vision Alliance
 
Introduction to FreeRTOS
Introduction to FreeRTOSIntroduction to FreeRTOS
Introduction to FreeRTOSICS
 

Similar to “TensorFlow Lite for Microcontrollers (TFLM): Recent Developments,” a Presentation from BDTI and Google (20)

DevOps Days Boston 2017: Real-world Kubernetes for DevOps
DevOps Days Boston 2017: Real-world Kubernetes for DevOpsDevOps Days Boston 2017: Real-world Kubernetes for DevOps
DevOps Days Boston 2017: Real-world Kubernetes for DevOps
 
Human Alert Sensor
Human Alert SensorHuman Alert Sensor
Human Alert Sensor
 
Serving HTC Users in Kubernetes by Leveraging HTCondor
Serving HTC Users in Kubernetes by Leveraging HTCondorServing HTC Users in Kubernetes by Leveraging HTCondor
Serving HTC Users in Kubernetes by Leveraging HTCondor
 
Human Alert Sensor Design
Human Alert Sensor DesignHuman Alert Sensor Design
Human Alert Sensor Design
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
 
Jacob Marble [InfluxData] | Observability with InfluxDB IOx and OpenTelemetry...
Jacob Marble [InfluxData] | Observability with InfluxDB IOx and OpenTelemetry...Jacob Marble [InfluxData] | Observability with InfluxDB IOx and OpenTelemetry...
Jacob Marble [InfluxData] | Observability with InfluxDB IOx and OpenTelemetry...
 
Deploy STM32 family on Zephyr - SFO17-102
Deploy STM32 family on Zephyr - SFO17-102Deploy STM32 family on Zephyr - SFO17-102
Deploy STM32 family on Zephyr - SFO17-102
 
DATE 2020: Design, Automation and Test in Europe Conference
DATE 2020: Design, Automation and Test in Europe ConferenceDATE 2020: Design, Automation and Test in Europe Conference
DATE 2020: Design, Automation and Test in Europe Conference
 
Matteo Valoriani, Antimo Musone - The Future of Factory - Codemotion Rome 2019
Matteo Valoriani, Antimo Musone - The Future of Factory - Codemotion Rome 2019Matteo Valoriani, Antimo Musone - The Future of Factory - Codemotion Rome 2019
Matteo Valoriani, Antimo Musone - The Future of Factory - Codemotion Rome 2019
 
Integrating Puppet and Gitolite for sysadmins cooperations
Integrating Puppet and Gitolite for sysadmins cooperationsIntegrating Puppet and Gitolite for sysadmins cooperations
Integrating Puppet and Gitolite for sysadmins cooperations
 
EKON 25 Python4Delphi_mX4
EKON 25 Python4Delphi_mX4EKON 25 Python4Delphi_mX4
EKON 25 Python4Delphi_mX4
 
Developing new zynq based instruments
Developing new zynq based instrumentsDeveloping new zynq based instruments
Developing new zynq based instruments
 
Python Data Science and Machine Learning at Scale with Intel and Anaconda
Python Data Science and Machine Learning at Scale with Intel and AnacondaPython Data Science and Machine Learning at Scale with Intel and Anaconda
Python Data Science and Machine Learning at Scale with Intel and Anaconda
 
Introduction to Git for Network Engineers (Lab Guide)
Introduction to Git for Network Engineers (Lab Guide)Introduction to Git for Network Engineers (Lab Guide)
Introduction to Git for Network Engineers (Lab Guide)
 
STM -32
STM -32STM -32
STM -32
 
learning STM -32
learning STM -32 learning STM -32
learning STM -32
 
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
 
IoT Prototyping using BBB and Debian
IoT Prototyping using BBB and DebianIoT Prototyping using BBB and Debian
IoT Prototyping using BBB and Debian
 
“Khronos Standard APIs for Accelerating Vision and Inferencing,” a Presentati...
“Khronos Standard APIs for Accelerating Vision and Inferencing,” a Presentati...“Khronos Standard APIs for Accelerating Vision and Inferencing,” a Presentati...
“Khronos Standard APIs for Accelerating Vision and Inferencing,” a Presentati...
 
Introduction to FreeRTOS
Introduction to FreeRTOSIntroduction to FreeRTOS
Introduction to FreeRTOS
 

More from Edge AI and Vision Alliance

“Learning Compact DNN Models for Embedded Vision,” a Presentation from the Un...
“Learning Compact DNN Models for Embedded Vision,” a Presentation from the Un...“Learning Compact DNN Models for Embedded Vision,” a Presentation from the Un...
“Learning Compact DNN Models for Embedded Vision,” a Presentation from the Un...Edge AI and Vision Alliance
 
“Introduction to Computer Vision with CNNs,” a Presentation from Mohammad Hag...
“Introduction to Computer Vision with CNNs,” a Presentation from Mohammad Hag...“Introduction to Computer Vision with CNNs,” a Presentation from Mohammad Hag...
“Introduction to Computer Vision with CNNs,” a Presentation from Mohammad Hag...Edge AI and Vision Alliance
 
“Selecting Tools for Developing, Monitoring and Maintaining ML Models,” a Pre...
“Selecting Tools for Developing, Monitoring and Maintaining ML Models,” a Pre...“Selecting Tools for Developing, Monitoring and Maintaining ML Models,” a Pre...
“Selecting Tools for Developing, Monitoring and Maintaining ML Models,” a Pre...Edge AI and Vision Alliance
 
“Building Accelerated GStreamer Applications for Video and Audio AI,” a Prese...
“Building Accelerated GStreamer Applications for Video and Audio AI,” a Prese...“Building Accelerated GStreamer Applications for Video and Audio AI,” a Prese...
“Building Accelerated GStreamer Applications for Video and Audio AI,” a Prese...Edge AI and Vision Alliance
 
“Understanding, Selecting and Optimizing Object Detectors for Edge Applicatio...
“Understanding, Selecting and Optimizing Object Detectors for Edge Applicatio...“Understanding, Selecting and Optimizing Object Detectors for Edge Applicatio...
“Understanding, Selecting and Optimizing Object Detectors for Edge Applicatio...Edge AI and Vision Alliance
 
“Introduction to Modern LiDAR for Machine Perception,” a Presentation from th...
“Introduction to Modern LiDAR for Machine Perception,” a Presentation from th...“Introduction to Modern LiDAR for Machine Perception,” a Presentation from th...
“Introduction to Modern LiDAR for Machine Perception,” a Presentation from th...Edge AI and Vision Alliance
 
“Vision-language Representations for Robotics,” a Presentation from the Unive...
“Vision-language Representations for Robotics,” a Presentation from the Unive...“Vision-language Representations for Robotics,” a Presentation from the Unive...
“Vision-language Representations for Robotics,” a Presentation from the Unive...Edge AI and Vision Alliance
 
“ADAS and AV Sensors: What’s Winning and Why?,” a Presentation from TechInsights
“ADAS and AV Sensors: What’s Winning and Why?,” a Presentation from TechInsights“ADAS and AV Sensors: What’s Winning and Why?,” a Presentation from TechInsights
“ADAS and AV Sensors: What’s Winning and Why?,” a Presentation from TechInsightsEdge AI and Vision Alliance
 
“Computer Vision in Sports: Scalable Solutions for Downmarkets,” a Presentati...
“Computer Vision in Sports: Scalable Solutions for Downmarkets,” a Presentati...“Computer Vision in Sports: Scalable Solutions for Downmarkets,” a Presentati...
“Computer Vision in Sports: Scalable Solutions for Downmarkets,” a Presentati...Edge AI and Vision Alliance
 
“Detecting Data Drift in Image Classification Neural Networks,” a Presentatio...
“Detecting Data Drift in Image Classification Neural Networks,” a Presentatio...“Detecting Data Drift in Image Classification Neural Networks,” a Presentatio...
“Detecting Data Drift in Image Classification Neural Networks,” a Presentatio...Edge AI and Vision Alliance
 
“Deep Neural Network Training: Diagnosing Problems and Implementing Solutions...
“Deep Neural Network Training: Diagnosing Problems and Implementing Solutions...“Deep Neural Network Training: Diagnosing Problems and Implementing Solutions...
“Deep Neural Network Training: Diagnosing Problems and Implementing Solutions...Edge AI and Vision Alliance
 
“AI Start-ups: The Perils of Fishing for Whales (War Stories from the Entrepr...
“AI Start-ups: The Perils of Fishing for Whales (War Stories from the Entrepr...“AI Start-ups: The Perils of Fishing for Whales (War Stories from the Entrepr...
“AI Start-ups: The Perils of Fishing for Whales (War Stories from the Entrepr...Edge AI and Vision Alliance
 
“A Computer Vision System for Autonomous Satellite Maneuvering,” a Presentati...
“A Computer Vision System for Autonomous Satellite Maneuvering,” a Presentati...“A Computer Vision System for Autonomous Satellite Maneuvering,” a Presentati...
“A Computer Vision System for Autonomous Satellite Maneuvering,” a Presentati...Edge AI and Vision Alliance
 
“Bias in Computer Vision—It’s Bigger Than Facial Recognition!,” a Presentatio...
“Bias in Computer Vision—It’s Bigger Than Facial Recognition!,” a Presentatio...“Bias in Computer Vision—It’s Bigger Than Facial Recognition!,” a Presentatio...
“Bias in Computer Vision—It’s Bigger Than Facial Recognition!,” a Presentatio...Edge AI and Vision Alliance
 
“Sensor Fusion Techniques for Accurate Perception of Objects in the Environme...
“Sensor Fusion Techniques for Accurate Perception of Objects in the Environme...“Sensor Fusion Techniques for Accurate Perception of Objects in the Environme...
“Sensor Fusion Techniques for Accurate Perception of Objects in the Environme...Edge AI and Vision Alliance
 
“Updating the Edge ML Development Process,” a Presentation from Samsara
“Updating the Edge ML Development Process,” a Presentation from Samsara“Updating the Edge ML Development Process,” a Presentation from Samsara
“Updating the Edge ML Development Process,” a Presentation from SamsaraEdge AI and Vision Alliance
 
“Combating Bias in Production Computer Vision Systems,” a Presentation from R...
“Combating Bias in Production Computer Vision Systems,” a Presentation from R...“Combating Bias in Production Computer Vision Systems,” a Presentation from R...
“Combating Bias in Production Computer Vision Systems,” a Presentation from R...Edge AI and Vision Alliance
 
“Developing an Embedded Vision AI-powered Fitness System,” a Presentation fro...
“Developing an Embedded Vision AI-powered Fitness System,” a Presentation fro...“Developing an Embedded Vision AI-powered Fitness System,” a Presentation fro...
“Developing an Embedded Vision AI-powered Fitness System,” a Presentation fro...Edge AI and Vision Alliance
 
“Navigating the Evolving Venture Capital Landscape for Edge AI Start-ups,” a ...
“Navigating the Evolving Venture Capital Landscape for Edge AI Start-ups,” a ...“Navigating the Evolving Venture Capital Landscape for Edge AI Start-ups,” a ...
“Navigating the Evolving Venture Capital Landscape for Edge AI Start-ups,” a ...Edge AI and Vision Alliance
 
“Advanced Presence Sensing: What It Means for the Smart Home,” a Presentation...
“Advanced Presence Sensing: What It Means for the Smart Home,” a Presentation...“Advanced Presence Sensing: What It Means for the Smart Home,” a Presentation...
“Advanced Presence Sensing: What It Means for the Smart Home,” a Presentation...Edge AI and Vision Alliance
 

More from Edge AI and Vision Alliance (20)

“Learning Compact DNN Models for Embedded Vision,” a Presentation from the Un...
“Learning Compact DNN Models for Embedded Vision,” a Presentation from the Un...“Learning Compact DNN Models for Embedded Vision,” a Presentation from the Un...
“Learning Compact DNN Models for Embedded Vision,” a Presentation from the Un...
 
“Introduction to Computer Vision with CNNs,” a Presentation from Mohammad Hag...
“Introduction to Computer Vision with CNNs,” a Presentation from Mohammad Hag...“Introduction to Computer Vision with CNNs,” a Presentation from Mohammad Hag...
“Introduction to Computer Vision with CNNs,” a Presentation from Mohammad Hag...
 
“Selecting Tools for Developing, Monitoring and Maintaining ML Models,” a Pre...
“Selecting Tools for Developing, Monitoring and Maintaining ML Models,” a Pre...“Selecting Tools for Developing, Monitoring and Maintaining ML Models,” a Pre...
“Selecting Tools for Developing, Monitoring and Maintaining ML Models,” a Pre...
 
“Building Accelerated GStreamer Applications for Video and Audio AI,” a Prese...
“Building Accelerated GStreamer Applications for Video and Audio AI,” a Prese...“Building Accelerated GStreamer Applications for Video and Audio AI,” a Prese...
“Building Accelerated GStreamer Applications for Video and Audio AI,” a Prese...
 
“Understanding, Selecting and Optimizing Object Detectors for Edge Applicatio...
“Understanding, Selecting and Optimizing Object Detectors for Edge Applicatio...“Understanding, Selecting and Optimizing Object Detectors for Edge Applicatio...
“Understanding, Selecting and Optimizing Object Detectors for Edge Applicatio...
 
“Introduction to Modern LiDAR for Machine Perception,” a Presentation from th...
“Introduction to Modern LiDAR for Machine Perception,” a Presentation from th...“Introduction to Modern LiDAR for Machine Perception,” a Presentation from th...
“Introduction to Modern LiDAR for Machine Perception,” a Presentation from th...
 
“Vision-language Representations for Robotics,” a Presentation from the Unive...
“Vision-language Representations for Robotics,” a Presentation from the Unive...“Vision-language Representations for Robotics,” a Presentation from the Unive...
“Vision-language Representations for Robotics,” a Presentation from the Unive...
 
“ADAS and AV Sensors: What’s Winning and Why?,” a Presentation from TechInsights
“ADAS and AV Sensors: What’s Winning and Why?,” a Presentation from TechInsights“ADAS and AV Sensors: What’s Winning and Why?,” a Presentation from TechInsights
“ADAS and AV Sensors: What’s Winning and Why?,” a Presentation from TechInsights
 
“Computer Vision in Sports: Scalable Solutions for Downmarkets,” a Presentati...
“Computer Vision in Sports: Scalable Solutions for Downmarkets,” a Presentati...“Computer Vision in Sports: Scalable Solutions for Downmarkets,” a Presentati...
“Computer Vision in Sports: Scalable Solutions for Downmarkets,” a Presentati...
 
“Detecting Data Drift in Image Classification Neural Networks,” a Presentatio...
“Detecting Data Drift in Image Classification Neural Networks,” a Presentatio...“Detecting Data Drift in Image Classification Neural Networks,” a Presentatio...
“Detecting Data Drift in Image Classification Neural Networks,” a Presentatio...
 
“Deep Neural Network Training: Diagnosing Problems and Implementing Solutions...
“Deep Neural Network Training: Diagnosing Problems and Implementing Solutions...“Deep Neural Network Training: Diagnosing Problems and Implementing Solutions...
“Deep Neural Network Training: Diagnosing Problems and Implementing Solutions...
 
“AI Start-ups: The Perils of Fishing for Whales (War Stories from the Entrepr...
“AI Start-ups: The Perils of Fishing for Whales (War Stories from the Entrepr...“AI Start-ups: The Perils of Fishing for Whales (War Stories from the Entrepr...
“AI Start-ups: The Perils of Fishing for Whales (War Stories from the Entrepr...
 
“A Computer Vision System for Autonomous Satellite Maneuvering,” a Presentati...
“A Computer Vision System for Autonomous Satellite Maneuvering,” a Presentati...“A Computer Vision System for Autonomous Satellite Maneuvering,” a Presentati...
“A Computer Vision System for Autonomous Satellite Maneuvering,” a Presentati...
 
“Bias in Computer Vision—It’s Bigger Than Facial Recognition!,” a Presentatio...
“Bias in Computer Vision—It’s Bigger Than Facial Recognition!,” a Presentatio...“Bias in Computer Vision—It’s Bigger Than Facial Recognition!,” a Presentatio...
“Bias in Computer Vision—It’s Bigger Than Facial Recognition!,” a Presentatio...
 
“Sensor Fusion Techniques for Accurate Perception of Objects in the Environme...
“Sensor Fusion Techniques for Accurate Perception of Objects in the Environme...“Sensor Fusion Techniques for Accurate Perception of Objects in the Environme...
“Sensor Fusion Techniques for Accurate Perception of Objects in the Environme...
 
“Updating the Edge ML Development Process,” a Presentation from Samsara
“Updating the Edge ML Development Process,” a Presentation from Samsara“Updating the Edge ML Development Process,” a Presentation from Samsara
“Updating the Edge ML Development Process,” a Presentation from Samsara
 
“Combating Bias in Production Computer Vision Systems,” a Presentation from R...
“Combating Bias in Production Computer Vision Systems,” a Presentation from R...“Combating Bias in Production Computer Vision Systems,” a Presentation from R...
“Combating Bias in Production Computer Vision Systems,” a Presentation from R...
 
“Developing an Embedded Vision AI-powered Fitness System,” a Presentation fro...
“Developing an Embedded Vision AI-powered Fitness System,” a Presentation fro...“Developing an Embedded Vision AI-powered Fitness System,” a Presentation fro...
“Developing an Embedded Vision AI-powered Fitness System,” a Presentation fro...
 
“Navigating the Evolving Venture Capital Landscape for Edge AI Start-ups,” a ...
“Navigating the Evolving Venture Capital Landscape for Edge AI Start-ups,” a ...“Navigating the Evolving Venture Capital Landscape for Edge AI Start-ups,” a ...
“Navigating the Evolving Venture Capital Landscape for Edge AI Start-ups,” a ...
 
“Advanced Presence Sensing: What It Means for the Smart Home,” a Presentation...
“Advanced Presence Sensing: What It Means for the Smart Home,” a Presentation...“Advanced Presence Sensing: What It Means for the Smart Home,” a Presentation...
“Advanced Presence Sensing: What It Means for the Smart Home,” a Presentation...
 

Recently uploaded

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 

Recently uploaded (20)

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 

“TensorFlow Lite for Microcontrollers (TFLM): Recent Developments,” a Presentation from BDTI and Google

  • 1. Copyright © 2022 Google and BDTI 1 TensorFlow Lite for Microcontrollers: Recent Developments Advait Jain Staff Software Engineer Google David Davis Senior Embedded Software Engineer BDTI John Withers Automation and Systems Engineer BDTI
  • 2. Copyright © 2022 Google and BDTI Outline • 10,000-foot view of TensorFlow Lite Micro • BDTI/Google Collaboration • Updated Arduino port of TFLM • New Kernel Operators • Improved CI via GitHub Actions 2
  • 3. Copyright © 2022 Google and BDTI TensorFlow Family (10,000-Foot view) 3 • TensorFlow (platform & ecosystem) • End-to-end open source platform for machine learning • 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 • TensorFlow (library) • The core open source library to help you develop and train ML models • TensorFlow Lite • Library for deploying models on mobile, microcontrollers and other edge devices • TensorFlow Lite Micro (TFLM) • Library to run machine learning models on DSPs, microcontrollers, and other embedded targets with a small memory footprint and very low power usage
  • 4. Copyright © 2022 Google and BDTI • Library designed to run machine learning models on embedded targets without any OS support, no dynamic memory allocation and a reduced set of C++11 standard libraries • Leverages the model optimization tools from the TensorFlow ecosystem and has additional embedded-specific offline and online optimizations to reduce the memory footprint from both the model and the framework • Integrates with a number of community contributed highly-optimized hardware-specific kernel implementations • All the TFLM modules are tested on a variety of targets and toolchains via software emulation for each pull request to the TFLM GitHub repository • TFLM provides tools, CI, and examples for how to integrate it into various embedded development environments TensorFlow Lite Micro (10,000-Foot View) 4
  • 6. Copyright © 2022 Google and BDTI Google and BDTI have created a new repository with platform specific example code for the Arduino Nano 33 BLE Sense. The code base is synchronized nightly from the TFLM repository using Github workflows. All example applications are independently maintained within the Arduino examples repository. Includes support for CMSIS_NN. Code in this repository can be used with both the Arduino IDE and CLI. With single step Git cloning of the repository into the Arduino library folder, TFLM is ready for use. TFLM Arduino Examples: New Repository 6
  • 7. Copyright © 2022 Google and BDTI Repository adheres to this guideline document: https://github.com/tensorflow/tflite- micro/blob/main/tensorflow/lite/micro/docs/new_platform_support.md Nightly synchronization script and workflow: https://github.com/tensorflow/tflite-micro-arduino- examples/blob/main/scripts/sync_from_tflite_micro.sh https://github.com/tensorflow/tflite-micro-arduino- examples/blob/main/.github/workflows/sync.yml TFLM Arduino Examples: New Repository (cont.) 7
  • 8. Copyright © 2022 Google and BDTI Arduino Nano 33 BLE Sense Tiny Machine Learning Kit (with Nano 33 BLE Sense) TFLM Arduino Examples: Tested Devices 8
  • 9. Copyright © 2022 Google and BDTI TFLM Arduino Examples: Easy Install 9
  • 10. Copyright © 2022 Google and BDTI TFLM Arduino Examples: hello_world 10 x: 0 ~ 2𝜋 Inference sin(x)
  • 11. Copyright © 2022 Google and BDTI The TFLM arena memory contains: • Modifiable tensors • Kernel operator execution graph • Kernel operator and interpreter data structures The arena memory is statically allocated within the application: constexpr int kTensorArenaSize = 2000; uint8_t tensor_arena[kTensorArenaSize]; Deeper Dive: Arduino hello_world 11
  • 12. Copyright © 2022 Google and BDTI tflite::InitializeTarget(); // Set up logging. static tflite::MicroErrorReporter micro_error_reporter; error_reporter = &micro_error_reporter; // Map the model into a usable data structure. This doesn't involve any // copying or parsing, it's a very lightweight operation. model = tflite::GetModel(g_model); // This pulls in all the operation implementations we need. static tflite::AllOpsResolver resolver; Deeper Dive: Arduino hello_world 12
  • 13. Copyright © 2022 Google and BDTI The kernel interpreter needs to be instantiated: // Build an interpreter to run the model with. static tflite::MicroInterpreter static_interpreter( model, resolver, tensor_arena, kTensorArenaSize, error_reporter); interpreter = &static_interpreter; Then the kernel interpreter initialization and tensor allocation occurs: // Allocate memory from the tensor_arena for the model's tensors. TfLiteStatus allocate_status = interpreter->AllocateTensors(); Deeper Dive: Arduino hello_world 13
  • 14. Copyright © 2022 Google and BDTI Now we need access to the input tensor so we can fill it with data: // Obtain pointer to the model's input tensor. input = interpreter->input(0); Since our data is quantized, we need to convert from floating point to int8: // Quantize the input from floating-point to integer int8_t x_quantized = x / input->params.scale + input->params.zero_point; // Place the quantized input in the model's input tensor input->data.int8[0] = x_quantized; Deeper Dive: Arduino hello_world 14
  • 15. Copyright © 2022 Google and BDTI Time to put the TensorFlow Lite Micro kernel interpreter to work: // Run inference, and report any error TfLiteStatus invoke_status = interpreter->Invoke(); if (invoke_status != kTfLiteOk) { TF_LITE_REPORT_ERROR(error_reporter, "Invoke failed on x: %fn", static_cast<double>(x)); return; } Deeper Dive: Arduino hello_world 15
  • 16. Copyright © 2022 Google and BDTI Finally, we get the output tensor so we can see our inference result: // Obtain pointer to the model's output tensor. output = interpreter->output(0); Since our data is quantized, we need to convert it back to floating point: // Obtain the quantized output from model's output tensor int8_t y_quantized = output->data.int8[0]; // Dequantize the output from integer to floating-point float y = (y_quantized - output->params.zero_point) * output->params.scale; Deeper Dive: Arduino hello_world 16
  • 17. Copyright © 2022 Google and BDTI Arduino IDE serial plotter output: Deeper Dive: Arduino hello_world 17
  • 18. Copyright © 2022 Google and BDTI TFLM Arduino Examples: magic_wand 18 3D IMU Motion Data Inference 2D Raster Projection (32x32) 0-9 Scores
  • 19. Copyright © 2022 Google and BDTI TFLM Arduino Examples: micro_speech 19 PCM Audio Inference 1 second moving average Spectrogram Yes/No/Unknown/Silence
  • 20. Copyright © 2022 Google and BDTI • Mobilenet_v1 model • 31 Kilobytes size • 470,000 parameters *Currently supported only in serial test mode TFLM Arduino Examples: person_detection 20 Monochrome Image (96x96) Inference Person/No-person Scores
  • 21. Copyright © 2022 Google and BDTI BDTI contributed a new module, test-over-serial module: https://github.com/tensorflow/tflite-micro-arduino-examples/tree/main/src/test_over_serial This module allows inference data to be supplied to TFLM applications over a serial connection. The module provides application testing, on device, independent of hardware data acquisition. A Python script sends data specified by a configuration file, and receives inference results from the device. This script is suitable for CI automation. python3 scripts/test_over_serial.py --example person_detection --verbose test TFLM Arduino Examples: Test Over Serial 21
  • 23. Copyright © 2022 Google and BDTI BDTI ported multiple kernel reference operators to TFLM from TFLite. Float32 and Int8 support are implemented where appropriate. ADD_N CAST CUMSUM DEPTH_TO_SPACE DIV ELU TFLM Kernel Operators 23 EXP EXPAND_DIMS FILL FLOOR_DIV FLOOR_MOD GATHER GATHER_ND L2_POOL_2D LEAKY_RELU LOG_SOFTMAX SPACE_TO_DEPTH
  • 24. Copyright © 2022 Google and BDTI To minimize RAM usage, TFLM keeps tensor dimension data in non-volatile memory (flash, ROM, etc). BDTI has contributed a utility function to accommodate kernel operators that need to modify tensor dimensions. The following kernel operators use this function: • SPACE_TO_DEPTH • DEPTH_TO_SPACE • GATHER • L2_POOL_2D TfLiteStatus CreateWritableTensorDimsWithCopy(TfLiteContext* context, TfLiteTensor* tensor, TfLiteEvalTensor* eval_tensor); Changing Tensor Shape/Dimensions 24
  • 25. Copyright © 2022 Google and BDTI • New porting guide added: https://github.com/tensorflow/tflite- micro/blob/main/tensorflow/lite/micro/docs/porting_reference_ops.md • Step-by-step explanation with Github Pull Requests from actual kernel operator port • FAQ added for common questions on memory allocation by kernel operators Kernel Operator Porting Guide 25
  • 26. BDTI/Google Collaboration: GitHub Tooling for Continuous Integration
  • 27. Copyright © 2022 Google and BDTI Why GitHub Tooling 27 ● In April 2021 we started refactoring the TFLM code from the TensorFlow repository into a stand-alone TFLM repository. ● Goals for the CI infrastructure included ○ Ability to run tests with various toolchains and a variety of simulated embedded targets ○ Full visibility into the infrastructure for TFLM’s community contributors ○ Blueprint of a CI setup that could be replicated and customized for TFLM ports to various hardware and dev boards ○ Reduce the friction in the PR merging process for both contributors and maintainers
  • 28. Copyright © 2022 Google and BDTI Github Actions ● Wide range of triggers ● Temporary virtual environment ● Large ecosystem of reusable components CI Components 28
  • 29. Copyright © 2022 Google and BDTI GHCR and Docker ● Github Container Repository ● Docker allows easier local testing on developer machines ● Modularizing tests CI Components 29
  • 30. Copyright © 2022 Google and BDTI CI Components 30 An extensive series of containerized tests are run against the PR
  • 31. Copyright © 2022 Google and BDTI Mergify ● Merge queue ● Many PRs end up awaiting reviewer approval ● Continues through merge induced test failures CI Components 31
  • 32. Copyright © 2022 Google and BDTI Developer and Maintainer Story ● Raise a PR to the TFLM repository ● Address reviewer comments ● PR gets merged without additional work from the PR authors ○ E.g., no need to update main when a different PR is merged ● Minimal overhead for the repo maintainers Subtleties ● Security model for PRs from forks takes a bit of study ● Creative workflows were needed to manage security and community contributions ● Triggers need enhancement Developer Story and Subtleties 32
  • 33. Copyright © 2022 Google and BDTI TensorFlow Lite Micro https://github.com/tensorflow/tflite-micro Arduino Examples https://github.com/tensorflow/tflite-micro-arduino-examples Contact the TFLM team https://github.com/tensorflow/tflite-micro#getting-help Additional Resources 33 2022 Embedded Vision Summit To see the magic wand demo, stop by the BDTI booth (#413) on the Technology Exhibits floor!
  • 34. Copyright © 2022 Google and BDTI About BDTI 34 The industry’s trusted source for engineering, analysis, and advice for embedded AI, deep learning, and computer vision. Specialties include: ● Algorithm design and implementation ● Processor selection ● Development tool and processor evaluations ● Training and coaching on embedded AI technology Come see us in Booth 413!