This document discusses using neural networks and machine learning at Saint-Gobain, a materials company. It describes their data science team using Python for various projects, including developing smartphone apps. It then discusses efforts to run neural networks on smartphones using frameworks like TensorFlow Lite and Core ML. Prototypes were created to export models trained in Keras and run them on Android, showing the potential for machine learning on mobile devices.
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
From Python to smartphones: neural nets @ Saint-Gobain, François Sausset
1. From Python to smartphones :
neural nets @ SAINT-GOBAIN
F. SAUSSET
PyParis 2017
2. WORKING @ SAINT-GOBAIN MAIN R&D CENTER
DATA SCIENCE TEAM
~ 15 people
Area of applications:
Marketing & sales
Industry
Building sciences
MORE & MORE PROJECTS FOR END-USERS
→ Development of smartphone applications
Low–level parts developped in the team
PYTHON: A SECOND CLASS CITIZEN ON MOBILE PLATFORMS
→ Write pure C/C++ code (to run on iOS & Android)
What about machine learning on mobiles ?
PYTHON FOR (ALMOST) EVERYTHING
3. NEURAL NETS @ SAINT-GOBAIN
FIRST ATTEMPTS 2 YEARS AGO
COULD BE APPLIED IN A LOT OF PLACES
Product recommendation (like on Netflix, Amazon, etc)
Natural language processing
Acoustics (classification, source separation, etc)
Façade semantization
Product design
…
AS PYTHONISTAS WE MAINLY PLAYED WITH KERAS + TENSORFLOW
NOW, FIRST PROTOTYPES IN THE PIPES THAT SHOULD RUN ON SMARTPHONES…
4. FACEBOOK
Caffe2Go
Announced @Web Summit 11/2016
Not yet released
Not very Python friendly
(pytorch in the meantime)
GOOGLE
Tensorflow Lite
Announced @Google I/O 5/2017
Not yet released, but…
Keras friendly
APPLE
Core ML
Announced @WWDC 2017 (last week)
Public release in september
Scikit-learn, Keras, caffe friendly !
ML FRAMEWORKS ON MOBILE
5. TENSORFLOW ON MOBILES
ANDROID (GPU) & IOS (CPU)
ON GITHUB SINCE 7/11/2015 (WITH ONE EXAMPLE)
NO DOCUMENTATION
NO EASY WAY TO EXTRACT THE TENSORFLOW LIB TO REUSE IN A PROJECT
SPECIFIC WAY TO SAVE THE MODEL
Any Tensorflow model could be used
But the protobuf file should include model structure + weights
No official documentation
…
AFTER SOME TINKERING,
WE MANAGE TO EXPORT ANY KERAS MODEL
TO A SUITABLE PROTOBUF FILE
https://gist.github.com/fsausset/57b99a3db5e1a05569845894ec385eef
6. PROTOTYPE APPLICATION
ANDROID (GPU)
ABLE TO LOAD ANY MODEL TRANSLATED FROM KERAS
SPECIFIC TEST OF ONE HOME-MADE ACOUSTIC
CLASSIFICATION MODEL
ALLOWS TO
Test if it works on mobiles
Test its speed: is it real time ?
Test model in the playground
Demo it easily
Put it in the hands of non-techies
Iterate fast to correct weaknesses not seen with the testing set
IT’S SO FUN TO CARRY IT WITH YOU EVERYWHERE
AND PLAY WITH IT !
7. A FEW TAKEAWAYS
AS ML & DL GOES OUT LABS,
PYTHON BECOMES THE DE FACTO STANDARD FOR IT
MOBILE ML & DL FRAMEWORKS ARE (REALLY) COMING !!!
EXPORT PYTHON BAKED MODELS TO MOBILE PLATFORMS IS NOW EASY
LOWER ENTRY TICKET → EXPLOSION OF ML/DL BASED MOBILE APPS
OPEN SOURCE IS AWESOME:
DIVE INTO GITHUB CODE, YOU COULD FIND GEMS !
& THEN CONTRIBUTE !