4. “At its core, Machine Learning is simply a
way of achieving AI.”
https://medium.com/iotforall/the-difference-between-artificial-intelligence-machine-learning-and-deep-learn
ing-3aa67bff5991
7. How Can You Use Machine Learning?
Models Data
(1) Others Others
(2) Others Yours
(3) Yours Yours
8. How Can You Use Machine Learning?
Three ways, with varying complexity:
(1) Use a Cloud-based or Mobile API (Vision, Natural Language,
etc.)
9. How Can You Use Machine Learning?
Three ways, with varying complexity:
(1) Use a Cloud-based or Mobile API (Vision, Natural Language,
etc.)
(2) Use an existing model architecture, and retrain it or fine tune
on your dataset
10. How Can You Use Machine Learning?
Three ways, with varying complexity:
(1) Use a Cloud-based or Mobile API (Vision, Natural Language,
etc.)
(2) Use an existing model architecture, and retrain it or fine tune
on your dataset
(3) Develop your own machine learning models for new
problems
11. How Can You Use Machine Learning?
Three ways, with varying complexity:
(1) Use a Cloud-based or Mobile API (Vision, Natural Language,
etc.)
(2) Use an existing model architecture, and retrain it or fine tune
on your dataset
(3) Develop your own machine learning models for new
problems
More
flexible,
but more
effort
required
19. Data Flow Graphs
Computation is defined as a directed acyclic graph
(DAG) to optimize an objective function
● Graph is defined in high-level language (Python)
● Graph is compiled and optimized
● Graph is executed (in parts or fully) on available low
level devices (CPU, GPU)
● Data (tensors) flow through the graph
● TensorFlow can compute gradients automatically
20. Architecture
● Core in C++
● Different front ends
○ Python and C++ today, community may add more
Core TensorFlow Execution System
CPU GPU Android iOS ...
C++ front end Python front end ...
25. Cross-Platform
Android App
(Java/C++ API)
iOS App
(C++ API)
Converter
(to TensorFlow
Lite format)
Trained
TensorFlow
Model
Linux (e.g. Raspberry Pi)
(Python/Java/C++ API)
Source: 2018 TensorFlow Developer Summit
26. iOS developers can also use CoreML
Android App
(Java/C++ API)
iOS App
(C++ API)
Converter
(to TensorFlow
Lite format)
Trained
TensorFlow
Model Linux (e.g. Raspberry Pi)
(Python/Java/C++ API)
iOS App
(Use CoreML runtime)
Converter
(to Core ML
format)
Source: 2018 TensorFlow Developer Summit
27. TensorFlow Lite in practice..
Get a
model
download or train
Convert
the model
to TensorFlow
Lite
Write ops
(If needed)
Write app
(Use client API)
Source: 2018 TensorFlow Developer Summit
28. ● Latency: You don’t need to send a request over a network connection and
wait for a response. This can be critical for video applications that process
successive frames coming from a camera.
● Availability: The application runs even when outside of network coverage.
● Speed: New hardware specific to neural networks processing provide
significantly faster computation than with general-use CPU alone.
● Privacy: The data does not leave the device.
● Cost: No server farm is needed when all the computations are performed on
the device.
Benefits
https://developer.android.com/ndk/guides/neuralnetworks/
29. ● System Utilization: Evaluating neural networks involve a lot of computation,
which could increase battery power usage.
● Application Size: Models may take up multiple megabytes of space.
Trade-offs
https://developer.android.com/ndk/guides/neuralnetworks/
34. … Google Developer Group Organizer;
… Remote Developer;
… Speaker;
… Community Advocate;
… Mobile Developer
… Machine Learning Engineer;
… Standup Comedian;
Thank you
Filipe Barroso - Acceptto
Twitter @ABarroso
Ask Me Anything about Communities!