Nous entendons aujourd’hui parler de Deep Learning un peu partout : reconnaissance d’images, de sons, génération de textes, etc. Suite aux récentes annonces sur Android Neural Network API et TensorFlowLite et à la release du framework CoreML d’Apple, tout nous pousse vers le “on-device intelligence”.
Bien que les techniques et frameworks soient en train de se démocratiser, il reste difficile d’en voir les applications concrètes en entreprise, et encore moins sur des applications mobiles. Nous avons donc décidé de construire un Proof Of Concept pour relever les défis du domaine.
A travers une application mobile à but éducatif, utilisant du Deep Learning pour de la reconnaissance d’objets, nous aborderons les impacts de ce type de modèles sur les smartphones, l’architecture pour l’entraînement et le déploiement de modèles sur un service Cloud, ainsi que la construction de l’application mobile avec les dernières nouveautés annoncées.
This document discusses program-defined functions in C++. It explains how to create value-returning functions with a header and body. The header contains the return type, function name, and parameters. The body contains the function instructions and usually ends with a return statement. Functions must be called to execute their code. The document provides examples of function definitions and calls. It also discusses function prototypes, scope, lifetime of variables, and avoiding global variables when possible.
This document provides an introduction to void functions in C++ programming. It discusses how to create and call void functions, as well as how to pass information to void functions through references. Specifically, it notes that void functions perform tasks without returning values, and how to define void functions without return data types or return statements. It also explains how passing by reference allows void functions to modify variable values in the calling function's memory space.
The document discusses using counters and accumulators to solve problems that require calculating a total or average. It provides examples of initializing counters and accumulators to 0 and updating them by adding a constant value (for counters) or varying value (for accumulators) in a loop. A sample stock price program is presented that uses a counter to track the number of prices entered and an accumulator to track the total, then calculates the average. Counter-controlled loops are also discussed as another method of controlling loops.
The document discusses various types of logical errors that can occur in selection structures and algorithms. It covers four common logic errors: 1) using a compound condition rather than a nested structure, 2) reversing outer and nested selection structures, 3) using an unnecessary nested structure, and 4) including an unnecessary comparison in a condition. The document also discusses multiple-alternative selection structures and how to implement them using if/else statements or the switch statement.
iOS for Android Developers (with Swift)David Truxall
As an app developer there is always pressure to understand and be able to address both major platforms. At first blush, coding for iOS seems quite different than for Android, perhaps due to the language differences between Objective-C and Java, and of course there is a different IDE and framework. With the introduction of Swift, this chasm seems much smaller. This talk will map Android and Java functionality to similar concepts in iOS using Swift. We’ll see the similarities and differences, focusing on framework concepts, and migrate a simple Android app to iOS.
Debugging and Profiling C++ Template MetaprogramsPlatonov Sergey
Template metaprogramming is an emerging new direction in C++ programming for executing algorithms in compilation time. Despite all of its already proven benefits and numerous successful applications, it is yet to be accepted in industrial projects. One reason is the lack of professional software tools supporting the development of template metaprograms. A strong analogue exists between traditional runtime programs and compile-time metaprograms. This connection presents the possibility for creating development tools similar to those already used when writing runtime programs. This paper introduces Templight, a debugging framework that reveals the steps executed by the compiler during the compilation of C++ programs with templates. Templight’s features include following the instantiation chain, setting breakpoints, and inspecting metaprogram information. This framework aims to take a step forward to help template metaprogramming become more accepted in the software industry.
This document discusses various techniques for working with multimedia in Android applications, including detecting device capabilities, loading images from local storage and remote URLs, playing audio files from assets and raw resources, and improving performance through caching and asynchronous loading. It provides code examples for checking if a device has a front-facing camera, loading images while avoiding out of memory errors, playing audio files from assets, and using an AsyncTask to load images asynchronously to avoid blocking the UI. It also discusses potential memory leak issues and strategies for building an image cache.
This document discusses program-defined functions in C++. It explains how to create value-returning functions with a header and body. The header contains the return type, function name, and parameters. The body contains the function instructions and usually ends with a return statement. Functions must be called to execute their code. The document provides examples of function definitions and calls. It also discusses function prototypes, scope, lifetime of variables, and avoiding global variables when possible.
This document provides an introduction to void functions in C++ programming. It discusses how to create and call void functions, as well as how to pass information to void functions through references. Specifically, it notes that void functions perform tasks without returning values, and how to define void functions without return data types or return statements. It also explains how passing by reference allows void functions to modify variable values in the calling function's memory space.
The document discusses using counters and accumulators to solve problems that require calculating a total or average. It provides examples of initializing counters and accumulators to 0 and updating them by adding a constant value (for counters) or varying value (for accumulators) in a loop. A sample stock price program is presented that uses a counter to track the number of prices entered and an accumulator to track the total, then calculates the average. Counter-controlled loops are also discussed as another method of controlling loops.
The document discusses various types of logical errors that can occur in selection structures and algorithms. It covers four common logic errors: 1) using a compound condition rather than a nested structure, 2) reversing outer and nested selection structures, 3) using an unnecessary nested structure, and 4) including an unnecessary comparison in a condition. The document also discusses multiple-alternative selection structures and how to implement them using if/else statements or the switch statement.
iOS for Android Developers (with Swift)David Truxall
As an app developer there is always pressure to understand and be able to address both major platforms. At first blush, coding for iOS seems quite different than for Android, perhaps due to the language differences between Objective-C and Java, and of course there is a different IDE and framework. With the introduction of Swift, this chasm seems much smaller. This talk will map Android and Java functionality to similar concepts in iOS using Swift. We’ll see the similarities and differences, focusing on framework concepts, and migrate a simple Android app to iOS.
Debugging and Profiling C++ Template MetaprogramsPlatonov Sergey
Template metaprogramming is an emerging new direction in C++ programming for executing algorithms in compilation time. Despite all of its already proven benefits and numerous successful applications, it is yet to be accepted in industrial projects. One reason is the lack of professional software tools supporting the development of template metaprograms. A strong analogue exists between traditional runtime programs and compile-time metaprograms. This connection presents the possibility for creating development tools similar to those already used when writing runtime programs. This paper introduces Templight, a debugging framework that reveals the steps executed by the compiler during the compilation of C++ programs with templates. Templight’s features include following the instantiation chain, setting breakpoints, and inspecting metaprogram information. This framework aims to take a step forward to help template metaprogramming become more accepted in the software industry.
This document discusses various techniques for working with multimedia in Android applications, including detecting device capabilities, loading images from local storage and remote URLs, playing audio files from assets and raw resources, and improving performance through caching and asynchronous loading. It provides code examples for checking if a device has a front-facing camera, loading images while avoiding out of memory errors, playing audio files from assets, and using an AsyncTask to load images asynchronously to avoid blocking the UI. It also discusses potential memory leak issues and strategies for building an image cache.
Lecture 4 from the COSC 426 graduate class on Augmented Reality. Taught by Mark Billinghurst from the HIT Lab NZ at the University of Canterbury. August 1st 2012
We all make mistakes while programming and spend a lot of time fixing them.
One of the methods which allows for quick detection of defects is source code static analysis.
We all make mistakes while programming and spend a lot of time fixing them.
One of the methods which allows for quick detection of defects is source code static analysis.
The document discusses the capabilities of HTML5 for building offline applications. It mentions several HTML5 features that enable offline functionality, including application cache, manifest files, and offline events. Application cache allows caching assets defined in a manifest file so the application can work offline. The offline event fires when the browser loses internet connectivity, informing the application it is now offline.
Is html5-ready-workshop-110727181512-phpapp02PL dream
The document discusses the capabilities of HTML5 for building offline applications. It mentions several HTML5 features that enable offline functionality, including application cache, manifest files, and offline events. Application cache allows caching assets defined in a manifest file so the application can work offline. The offline event fires when the browser loses internet connectivity, informing the application it is now offline.
This document provides an overview of key Android development concepts and techniques. It discusses fragments, the support library, dependency injection, image caching, threading and AsyncTask, notifications, supporting multiple screens, and optimizing ListView performance. The document also recommends several popular Android libraries and open source apps that demonstrate best practices.
OSCON 2014 - API Ecosystem with Scala, Scalatra, and Swagger at NetflixManish Pandit
This document discusses Netflix's API ecosystem built using Scala, Scalatra, and Swagger. It summarizes Netflix's use of these technologies to build APIs that power their consumer electronics partner portal and enable certification of Netflix ready devices. It describes how the APIs provide a single source of truth for all device data at Netflix and correlate streaming quality metrics. It then discusses aspects of the architecture including the manager layer containing business logic, HTTP layer for handling requests/responses, and use of Scala, Scalatra, Swagger, and deployment process including immutable infrastructure.
TensorFlow Lite (r1.5) & Android 8.1 Neural Network APIMr. Vengineer
This document discusses TensorFlow Lite 1.5 and the Android 8.1 Neural Networks API. It provides an overview of converting TensorFlow models to the TensorFlow Lite format using conversion tools, and running those models on Android using the TensorFlow Lite and Neural Networks APIs. The key steps are converting TensorFlow models to TensorFlow Lite format, creating an interpreter to run the model, and using the interpreter and Neural Networks API to execute the model on Android hardware like the CPU.
This document discusses augmented reality (AR) developer tools. It describes several low-level AR libraries including ARToolKit, FLARToolKit, and SSTT. It then discusses additional AR authoring software like osgART, Studierstube, MXRToolKit, DART, mARx, AMIRE, ComposAR, and iaTAR that provide higher-level tools for building AR applications and experiences. The document also covers components of AR applications like tracking, display, and some example ARToolKit applications.
This document provides a short introduction to HTML5, including:
- HTML5 is the 5th version of the HTML standard by the W3C and is still under development but supported by many browsers.
- HTML5 introduces new semantic elements, video and audio tags, 2D/3D graphics using <canvas>, and new JavaScript APIs for features like geolocation, offline web apps, and drag and drop.
- The document provides examples of using new HTML5 features like video playback, semantic elements, geolocation API, and drawing on a canvas with JavaScript.
Mobile Software Engineering Crash Course - C06 WindowsPhoneMohammad Shaker
The document provides an overview of mobile software engineering for Windows Phone, discussing tools and frameworks like the Windows Phone SDK, Silverlight, MVVM, data binding, navigation, and WebClient; it also mentions game development with XNA and using touch events to control a particle engine. Code samples demonstrate common tasks like data binding, navigation, and downloading data with WebClient.
Eric Lafortune - The Jack and Jill build systemGuardSquare
Jack and Jill are new build tools introduced by Google that optimize the Android build process. Jack compiles Java code to an intermediate format called Jayce bytecode. Jill then compiles Jayce to optimized Dalvik bytecode. This results in faster build times, smaller app sizes, and support for Java 8 language features on older Android versions. It also allows for new optimizations from tools like ProGuard and DexGuard during the build. The changes improve performance for developers and applications.
Post Exploitation Bliss: Loading Meterpreter on a Factory iPhone, Black Hat U...Vincenzo Iozzo
Charlie Miller and Vincenzo Iozzo presented techniques for post-exploitation on the iPhone 2 including:
1. Running arbitrary shellcode by overwriting memory protections and calling vm_protect to mark pages as read/write/executable.
2. Loading an unsigned dynamic library called Meterpreter by mapping it over an existing signed library, patching dyld to ignore code signing, and forcing unloaded of linked libraries.
3. Adding new functionality to Meterpreter, such as a module to vibrate and play a sound on the iPhone, demonstrating how payloads can be extended once loaded into memory.
This document discusses various techniques for optimizing RecyclerView performance in Android applications. It begins by describing common ways to measure UI performance such as frames per second (FPS), GPU rendering profiling, and aggregating frame stats. The document then provides tips for optimizing RecyclerView cells hierarchies, minimizing work done in onBindViewHolder(), correctly scaling images, handling nested RecyclerViews, only updating affected items, using item caches, stable IDs, prefetching, and DiffUtil.
This document summarizes various features and APIs available for mobile web development. It discusses viewport meta tags, touch events, gesture events, media queries, and device features like the device pixel ratio and connection type. It also lists some popular mobile JavaScript libraries. The document provides code examples for touch, gesture, and device motion events.
The document discusses an image processing pipeline for mobile devices that uses the webcam on a browser to capture images and upload them to a GPU-enabled server for preprocessing and neural network processing before returning results to the browser. It covers using WebRTC and JavaScript Canvas to capture images, uploading images to the server via WebSocket, preprocessing images on both the client and server sides, using Tornado on the server to handle the WebSocket connection and processing images with queues and multiprocessing, and various neural networks that could be used for processing.
Et si le cerveau humain utilisait un algorithme pour la reconnaissance d'images ?
Expliquons et comparons les algorithmes de reconnaissance de formes des ordinateurs et le fonctionnement neurologique du cerveau humain.
Par Sarah Buisson, Craftsman full-stack Java chez Xebia
Toutes les informations et vidéos sur xebicon.fr
Aujourd'hui accessibles partout, les objets connectés suscitent de plus en plus d’intérêt. Malgré cela, l’implémentation d’un projet IoT peut s’avérer compliquée au vu la diversité des dispositifs, protocoles et frameworks. Le nombre d'alternatives qui se présentent à nous est énorme.
En partant de l'embarqué, avec les protocoles applicatifs, jusqu'au déploiement d'une solution sur le cloud, en passant par la délégation des traitements en local via l'IoT Edge, nous rentrerons dans le détail de l'implémentation d'une solution IoT de bout en bout, le tout en comparant deux solutions : AWS et Azure.
Par Diana Ortega, Développeuse Back-End, Yassir Sennoun et Sameh Ben Fredj Data Scientist et IoT, consultants chez Xebia
Toutes les informations et vidéos sur xebicon.fr
More Related Content
Similar to XebiCon'17 : Faites chauffer les neurones de votre Smartphone avec du Deep Learning on-device - Qian Jin, Yoann Benoit et Sylvain Lequeux
Lecture 4 from the COSC 426 graduate class on Augmented Reality. Taught by Mark Billinghurst from the HIT Lab NZ at the University of Canterbury. August 1st 2012
We all make mistakes while programming and spend a lot of time fixing them.
One of the methods which allows for quick detection of defects is source code static analysis.
We all make mistakes while programming and spend a lot of time fixing them.
One of the methods which allows for quick detection of defects is source code static analysis.
The document discusses the capabilities of HTML5 for building offline applications. It mentions several HTML5 features that enable offline functionality, including application cache, manifest files, and offline events. Application cache allows caching assets defined in a manifest file so the application can work offline. The offline event fires when the browser loses internet connectivity, informing the application it is now offline.
Is html5-ready-workshop-110727181512-phpapp02PL dream
The document discusses the capabilities of HTML5 for building offline applications. It mentions several HTML5 features that enable offline functionality, including application cache, manifest files, and offline events. Application cache allows caching assets defined in a manifest file so the application can work offline. The offline event fires when the browser loses internet connectivity, informing the application it is now offline.
This document provides an overview of key Android development concepts and techniques. It discusses fragments, the support library, dependency injection, image caching, threading and AsyncTask, notifications, supporting multiple screens, and optimizing ListView performance. The document also recommends several popular Android libraries and open source apps that demonstrate best practices.
OSCON 2014 - API Ecosystem with Scala, Scalatra, and Swagger at NetflixManish Pandit
This document discusses Netflix's API ecosystem built using Scala, Scalatra, and Swagger. It summarizes Netflix's use of these technologies to build APIs that power their consumer electronics partner portal and enable certification of Netflix ready devices. It describes how the APIs provide a single source of truth for all device data at Netflix and correlate streaming quality metrics. It then discusses aspects of the architecture including the manager layer containing business logic, HTTP layer for handling requests/responses, and use of Scala, Scalatra, Swagger, and deployment process including immutable infrastructure.
TensorFlow Lite (r1.5) & Android 8.1 Neural Network APIMr. Vengineer
This document discusses TensorFlow Lite 1.5 and the Android 8.1 Neural Networks API. It provides an overview of converting TensorFlow models to the TensorFlow Lite format using conversion tools, and running those models on Android using the TensorFlow Lite and Neural Networks APIs. The key steps are converting TensorFlow models to TensorFlow Lite format, creating an interpreter to run the model, and using the interpreter and Neural Networks API to execute the model on Android hardware like the CPU.
This document discusses augmented reality (AR) developer tools. It describes several low-level AR libraries including ARToolKit, FLARToolKit, and SSTT. It then discusses additional AR authoring software like osgART, Studierstube, MXRToolKit, DART, mARx, AMIRE, ComposAR, and iaTAR that provide higher-level tools for building AR applications and experiences. The document also covers components of AR applications like tracking, display, and some example ARToolKit applications.
This document provides a short introduction to HTML5, including:
- HTML5 is the 5th version of the HTML standard by the W3C and is still under development but supported by many browsers.
- HTML5 introduces new semantic elements, video and audio tags, 2D/3D graphics using <canvas>, and new JavaScript APIs for features like geolocation, offline web apps, and drag and drop.
- The document provides examples of using new HTML5 features like video playback, semantic elements, geolocation API, and drawing on a canvas with JavaScript.
Mobile Software Engineering Crash Course - C06 WindowsPhoneMohammad Shaker
The document provides an overview of mobile software engineering for Windows Phone, discussing tools and frameworks like the Windows Phone SDK, Silverlight, MVVM, data binding, navigation, and WebClient; it also mentions game development with XNA and using touch events to control a particle engine. Code samples demonstrate common tasks like data binding, navigation, and downloading data with WebClient.
Eric Lafortune - The Jack and Jill build systemGuardSquare
Jack and Jill are new build tools introduced by Google that optimize the Android build process. Jack compiles Java code to an intermediate format called Jayce bytecode. Jill then compiles Jayce to optimized Dalvik bytecode. This results in faster build times, smaller app sizes, and support for Java 8 language features on older Android versions. It also allows for new optimizations from tools like ProGuard and DexGuard during the build. The changes improve performance for developers and applications.
Post Exploitation Bliss: Loading Meterpreter on a Factory iPhone, Black Hat U...Vincenzo Iozzo
Charlie Miller and Vincenzo Iozzo presented techniques for post-exploitation on the iPhone 2 including:
1. Running arbitrary shellcode by overwriting memory protections and calling vm_protect to mark pages as read/write/executable.
2. Loading an unsigned dynamic library called Meterpreter by mapping it over an existing signed library, patching dyld to ignore code signing, and forcing unloaded of linked libraries.
3. Adding new functionality to Meterpreter, such as a module to vibrate and play a sound on the iPhone, demonstrating how payloads can be extended once loaded into memory.
This document discusses various techniques for optimizing RecyclerView performance in Android applications. It begins by describing common ways to measure UI performance such as frames per second (FPS), GPU rendering profiling, and aggregating frame stats. The document then provides tips for optimizing RecyclerView cells hierarchies, minimizing work done in onBindViewHolder(), correctly scaling images, handling nested RecyclerViews, only updating affected items, using item caches, stable IDs, prefetching, and DiffUtil.
This document summarizes various features and APIs available for mobile web development. It discusses viewport meta tags, touch events, gesture events, media queries, and device features like the device pixel ratio and connection type. It also lists some popular mobile JavaScript libraries. The document provides code examples for touch, gesture, and device motion events.
The document discusses an image processing pipeline for mobile devices that uses the webcam on a browser to capture images and upload them to a GPU-enabled server for preprocessing and neural network processing before returning results to the browser. It covers using WebRTC and JavaScript Canvas to capture images, uploading images to the server via WebSocket, preprocessing images on both the client and server sides, using Tornado on the server to handle the WebSocket connection and processing images with queues and multiprocessing, and various neural networks that could be used for processing.
Similar to XebiCon'17 : Faites chauffer les neurones de votre Smartphone avec du Deep Learning on-device - Qian Jin, Yoann Benoit et Sylvain Lequeux (20)
Et si le cerveau humain utilisait un algorithme pour la reconnaissance d'images ?
Expliquons et comparons les algorithmes de reconnaissance de formes des ordinateurs et le fonctionnement neurologique du cerveau humain.
Par Sarah Buisson, Craftsman full-stack Java chez Xebia
Toutes les informations et vidéos sur xebicon.fr
Aujourd'hui accessibles partout, les objets connectés suscitent de plus en plus d’intérêt. Malgré cela, l’implémentation d’un projet IoT peut s’avérer compliquée au vu la diversité des dispositifs, protocoles et frameworks. Le nombre d'alternatives qui se présentent à nous est énorme.
En partant de l'embarqué, avec les protocoles applicatifs, jusqu'au déploiement d'une solution sur le cloud, en passant par la délégation des traitements en local via l'IoT Edge, nous rentrerons dans le détail de l'implémentation d'une solution IoT de bout en bout, le tout en comparant deux solutions : AWS et Azure.
Par Diana Ortega, Développeuse Back-End, Yassir Sennoun et Sameh Ben Fredj Data Scientist et IoT, consultants chez Xebia
Toutes les informations et vidéos sur xebicon.fr
Terminé l'adminstration de cluster Hadoop !
Depuis l'arrivée de la version 2.3 de Spark, il est maintenant possible de lancer des jobs sur un cluster Manager Kubernetes. Ce slot se propose de vous faire découvrir Spark sur un cluster manager Kubernetes mais pas seulement.
Il se propose également de montrer les nouvelles façons de faire du Spark sans être dépendant d'une distribution Hadoop tout en interagissant de manière sécurisée avec un stockage de masse.
Toutes ces solutions seront présentées à l'aide d'un provider de Cloud. Vous découvrirez lequel durant la présentation.
Par Bruno Bouchahoua, Architect Data chez Xebia
Toutes les informations et vidéos sur xebicon.fr
Vous avez beau avoir modernisé vos applications, les avoir rendu stateless, 12factor-compliant, etc., si vous n'avez pas l'infrastructure pour les déployer proprement et les gérer, votre bénéfice final sera fortement amoindri.
Cette conférence a pour but de vous faire ressortir avec une définition et une vision claires des principaux concepts qui caractérisent une infrastructure moderne. Nous y parlerons Configuration Management, infrastructure immuable, infra-as-Code, orchestration, self-healing, systèmes distribués, applications Cloud Native, Serverless ... et ce n'est qu'un avant goût !
Par Alexis "Horgix" Chotard, SRE & Automation addict chez Xebia
Toutes les informations et vidéo sur xebicon.fr
The document discusses modern web application architectures like single-page applications (SPAs), progressive web apps (PWAs), server-side rendering (SSR), code splitting, precaching, and service workers. It provides an overview of each technique including benefits, examples, and how they can work together. Specific topics covered include using SSR to improve SEO for SPAs, code splitting to reduce bundle size, precaching to enable offline use, and how service workers can cache assets to improve performance.
Depuis quelques années, les notebook ont gagné en popularité. Apache Zeppelin, avec son architecture modulaire, offre une solution de notebook et de dashboarding, le tout sans mettre de côté la sécurité. Cette présentation vous fera découvrir cet outil merveilleux dont vous ne pourrez bientôt plus vous passer.
Par Romain Sagean, Data Engineer chez Xebia
Toutes les informations sur xebicon.fr
Le RGPD est entré en vigueur le 25 mai 2018 avec les implications que nous connaissons tous (droit à l'oubli, consentement explicite, sécurité par défaut, etc.)
En parallèle, nous développons de plus en plus d'architectures autour de l'Event Sourcing, qui par définition sauvegarde les données de manière immutable.
Mais alors, comment faire pour concilier une architecture autour de l'Event Sourcing, immutable, avec les restrictions imposées par le RGPD ?
C'est ce que nous allons explorer durant cette session !
Par Charles Dufour, Développeur Back-End chez Xebia
Toutes les informations sur xebicon.fr
Le créateur de NodeJS, Ryan Dahl, a décidé de créer un nouveau runtime pour Javascript : Deno. Son but ? Eliminer les erreurs et maladresses de son grand frère. Découvrez ce qui se cache derrière ainsi que la vision de son créateur.
Par Maxime Pichou, développeur Back/Cloud chez Xebia
Toutes les informations sur xebicon.fr
Lorsque la quantité de données est très grande et que l'architecture de votre réseau de neurones est complexe, la question du temps d'entraînement et de la capacité de votre machine deviennent primordiales. Un entraînement de modèle peut vite prendre plusieurs heures voire jours, ou même ne pas tenir en mémoire. Il est alors temps de parler de Deep Learning distribué !
Au cours de cette présentation, nous allons voir différentes solutions et bonnes pratiques pour accélérer l'entraînement de modèles de Deep Learning en les distribuant sur un cluster ou sur des plateformes multi-GPUs.
Par Yoann Benoit, Data Scientist et Technical Officer chez Xebia
Toutes les informations sur xebicon.fr
Par curiosité, puis par passion, j'ai développé un jeu vidéo à l'aide des outils et frameworks habituellement utilisés dans des applications web.
Pas commun dites-vous ? Revenons ensemble sur la manière dont je m'y suis pris, les choix techniques et ce qui les a faits évoluer, les challenges et les compétences développées au cours de cette aventure.
Par Alexandre Dergham, Développeurs full-stack chez Xebia
Toutes les informations sur xebicon.fr
Depuis quelques années, vous entendez parler de transformation d’entreprises permettant la diminution du Time-To-Market, le rapprochement des développeurs et opérationnels et la synchronisation des backlogs ou encore favorisant le plaisir au travail. Pourtant nous oublions l’essentiel, réaliser le bon produit répondant aux réelles problématiques des utilisateurs finaux.
Ce fondement est trop souvent oublié par toutes ces entreprises voulant monter vite sur l’agilité à l’échelle. Vous êtes vous déjà rendu compte à quel point cette clé de succès est oubliée ? Savez-vous pourquoi il faut mettre un point d’honneur à intégrer les utilisateurs finaux dans les projets ?
Par Nelson Dufossé, Agile Delivery Manager chez Xebia
Toutes les informations sur xebicon.fr
Une Data Visualisation permet en un seul coup d’œil de véhiculer des résultats (d'analyse). Au travers de contre-exemples bien choisis, nous allons voir les nombreux pièges qui nuisent à la lisibilité et l'interprétation des données et comment choisir la bonne représentation pour faire passer vos idées.
Par Romain Sagean, Data Engineer chez Xebia
Toutes les informations sur xebicon.fr
"Quand je serai grand je travaillerai chez SEGA". Julien Smadja, 10 ans.
À travers les différents média de la Pop Culture, nous allons étudier l'image des développeurs, entre mythe, réalité, fantasme et exagération.
Quelle est l'image du développeur en 2018 ? Notre métier fait-il réver et donne-t-il envie aux jeunes et moins jeunes ?
Par Julien Smadja, Directeur Conseil chez Xebia
Toutes les informations sur xebicon.fr
Vous avez l’impression que vous devez jeter la moitié de votre code tous les 6 mois ? Plus le temps passe, moins votre application mobile est maintenable ?
Injection de dépendances, routage ou gestion des environnements, venez découvrir nos conseils pour vous aider à réaliser des applications mobiles évolutives conçues pour durer dans le temps.
Par Jean-Christophe Pastant, Mobile Engineer chez Xebia
Toutes les informations sur xebicon.fr
Nous entrons progressivement dans l’ère du temps réel et toutes les technologies nécessaires sont désormais à portée de mains, mais comment s’y prendre ? Quelles technologies choisir ? Nous allons vous montrer aujourd’hui comment créer facilement une application temps-réel qui scale ! Notre Stack ? Kubernetes, Google Container Engine, React, Redux et RethinkDB.
Par Jérémy P. et Damien Baron, consultants chez Xebia
Toutes les informations sur xebicon.fr
Que se passe-t-il dans nos têtes en permanence lorsque nous sommes à plusieurs et pourquoi ces mécanismes psychologiques s'activent ? Pourquoi passe-t-on notre temps, malgré nous, à jouer à des jeux psychologiques ? Que dit-on après avoir dit bonjour ? Comment nait et évolue un groupe dans le temps ? Comment repérer quand il dysfonctionne ? Les individus et leurs interactions plus que les processus et les outils ? Pour toute personne qui ne vit pas seule dans une grotte, ce sujet se veut utile et pourquoi pas intéressant
Par Anne-Sophie Girault, Coach Agile chez Xebia
Toutes les informations sur xebicon.fr
Spark NLP (Natural Language Processing) permet depuis son lancement en open source, il y a un an et quelques mois, d'avoir une solution de traitement du langage directement développé pour Apache Spark et Spark ML (Machine Learning). Apache Spark avec son module ML permet de lancer des tâches de data science, avec du machine learning et du deep learning, tout en profitant de l'aspect distribué de son architecture. Avec Spark NLP, on peut le faire maintenant avec des tâches de NLP spécialisé.
Depuis sa sortie, que peux-t-on faire avec Spark NLP ? Quels cas sont à tester avec Spark NLP, et ceux à éviter ? Est-ce facile pour les équipes d'entraîner un modèle et de l'utiliser dans son pipeline ?
Nous verrons ces questions à travers un exemple rapide d'entraînement de détection d'entités nommées (NER) avec Spark NLP.
Par Aurore De Amaral, Data Engineer chez Xebia
Toutes les informations sur xebicon.fr
La sécurité, cette branche de notre domaine dont le devoir est de protéger le système d'information, revient très souvent comme un point de douleur dans toutes les étapes du cycle de vie d'un projet. Pourtant, malgré une nécessité réelle, un bon nombre des mesures prises sont incomplètes, voire inutiles.
Des politiques de mot de passe aberrantes au proxy ne limitant en pratique que peu de choses, ce slot tentera de démystifier les principes clés de la sécurité et d'expliquer pourquoi un certain nombre des mesures courantes dans les entreprises n'ont en réalité qu'un effet placebo.
Par Jonathan Raffre, Technical Architect chez Xebia
Toutes les informations sur xebicon.fr
La blockchain est la technologie buzzword du moment pour assurer une traçabilité des transactions. Beaucoup de personnes en parlent, mais très peu savent comment cela fonctionne réellement. Pire, de plus d'outils d'implémentations font leur apparition, et il est difficile de s'y retrouver.
The Linux Foundation a créé Hyperledger Fabric, un framework permettant la réalisation d'un réseau de blockchain from scratch très prometteur, que nous allons décortiquer ensemble. Nous allons donc réaliser un tour d'horizon de ce qu'il permet et explorer les tenants et aboutissants de ce qu'est concrètement la réalisation d'un tel réseau.
Cette présentation a pour vocation de vous permettre de comprendre en détail le fonctionnement de cette technologie, et surtout d'être capable de savoir si elle peut répondre à vos besoins.
Par Vincent Segouin, Développeur full-stack JS Java chez Xebia
Toutes les informations sur xebicon.fr
En plus d'un siècle d'existence, la gestion de la circulation et l'organisation du métro parisien ont dû évoluer pour augmenter en permanence le débit tout en tenant compte des contraintes de sécurité. Vous commencez à comprendre où cette présentation veut en venir...
Le temps de cette session, prenons un peu de recul sur notre cœur de métier : la création logicielle. Entre organisation du travail, amélioration d'un produit sur le long terme ou équilibre permanent qu'il faut trouver entre exploitabilité et sécurité, vous serez surpris de retrouver de nombreux parallèles et de voir ce qu'ils peuvent nous apporter.
Par Edouard Siha, Développeur Back-End chez Xebia
Toutes les informations sur xebicon.fr
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
Maruthi Prithivirajan, Head of ASEAN & IN Solution Architecture, Neo4j
Get an inside look at the latest Neo4j innovations that enable relationship-driven intelligence at scale. Learn more about the newest cloud integrations and product enhancements that make Neo4j an essential choice for developers building apps with interconnected data and generative AI.
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc
How does your privacy program stack up against your peers? What challenges are privacy teams tackling and prioritizing in 2024?
In the fifth annual Global Privacy Benchmarks Survey, we asked over 1,800 global privacy professionals and business executives to share their perspectives on the current state of privacy inside and outside of their organizations. This year’s report focused on emerging areas of importance for privacy and compliance professionals, including considerations and implications of Artificial Intelligence (AI) technologies, building brand trust, and different approaches for achieving higher privacy competence scores.
See how organizational priorities and strategic approaches to data security and privacy are evolving around the globe.
This webinar will review:
- The top 10 privacy insights from the fifth annual Global Privacy Benchmarks Survey
- The top challenges for privacy leaders, practitioners, and organizations in 2024
- Key themes to consider in developing and maintaining your privacy program
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
How to Get CNIC Information System with Paksim Ga.pptxdanishmna97
Pakdata Cf is a groundbreaking system designed to streamline and facilitate access to CNIC information. This innovative platform leverages advanced technology to provide users with efficient and secure access to their CNIC details.
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Zilliz
Join us to introduce Milvus Lite, a vector database that can run on notebooks and laptops, share the same API with Milvus, and integrate with every popular GenAI framework. This webinar is perfect for developers seeking easy-to-use, well-integrated vector databases for their GenAI apps.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Building RAG with self-deployed Milvus vector database and Snowpark Container...Zilliz
This talk will give hands-on advice on building RAG applications with an open-source Milvus database deployed as a docker container. We will also introduce the integration of Milvus with Snowpark Container Services.
20 Comprehensive Checklist of Designing and Developing a WebsitePixlogix Infotech
Dive into the world of Website Designing and Developing with Pixlogix! Looking to create a stunning online presence? Look no further! Our comprehensive checklist covers everything you need to know to craft a website that stands out. From user-friendly design to seamless functionality, we've got you covered. Don't miss out on this invaluable resource! Check out our checklist now at Pixlogix and start your journey towards a captivating online presence today.
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
XebiCon'17 : Faites chauffer les neurones de votre Smartphone avec du Deep Learning on-device - Qian Jin, Yoann Benoit et Sylvain Lequeux
1. Heat the Neurons of Your
Smartphone with Deep Learning
Qian Jin | @bonbonking | qjin@xebia.fr
Yoann Benoit | @YoannBENOIT | ybenoit@xebia.fr
Sylvain Lequeux | @slequeux | slequeux@xebia.fr
35. Deep Convolutional Neural Network
& Inception Architecture
Credit: http://nicolovaligi.com/history-inception-deep-learning-architecture.html
36. Deep Convolutional Neural Network
36
Image Credit: https://github.com/tensorflow/models/tree/master/research/inception
Visualisation of Inception v3
Model Architecture
Edges Shapes
High Level
Features
Classifiers
40. Transfer Learning
• Use a pre-trained Deep Neural Network
• Keep all operations but the last one
• Re-train only the last operation to specialize your network to your classes
Keep all weights identical
except these ones
40
42. 42
Retrain a Model
Source: https://codelabs.developers.google.com/codelabs/tensorflow-for-poets/
python -m tensorflow/examples/image_retraining/retrain.py
--bottleneck_dir=tf_files/bottlenecks
--how_many_training_steps=500
--model_dir=tf_files/models/
--summaries_dir=tf_files/training_summaries/
--output_graph=tf_files/retrained_graph.pb
--output_labels=tf_files/retrained_labels.txt
--image_dir=tf_files/fruit_photos
43. Obtain the Retrained Model
•2 outputs:
• Model as protobuf file: contains
a version of the selected network
with a final layer retrained on
your categories
• Labels as text file
43
model.pb label.txt
44. 44
public class ClassifierActivity extends CameraActivity implements
OnImageAvailableListener {
private static final int INPUT_SIZE = 224;
private static final int IMAGE_MEAN = 117;
private static final float IMAGE_STD = 1;
private static final String INPUT_NAME = "input";
private static final String OUTPUT_NAME = "output";
private static final String MODEL_FILE = "file:///android_asset/
tensorflow_inception_graph.pb";
private static final String LABEL_FILE = "file:///android_asset/
imagenet_comp_graph_label_strings.txt";
}
Source: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/android/src/org/tensorflow/demo/ClassifierActivity.java
51. Pre-Google I/O 2017
• Use nightly build
• Library .so
• Java API jar
android {
//…
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
}
51
52. Post-Google I/O 2017
Source: Android Meets TensorFlow: How to Accelerate Your App with AI (Google I/O '17) https://www.youtube.com/watch?v=25ISTLhz0ys
52
Currently: 1.4.0
68. Converts YUV420 (NV21) to ARGB8888
68
public static native void
convertYUV420ToARGB8888(
byte[] y,
byte[] u,
byte[] v,
int[] output,
int width,
int height,
int yRowStride,
int uvRowStride,
int uvPixelStride,
boolean halfSize
);
69. 69
/**
* Initializes a native TensorFlow session for classifying images.
*
* @param assetManager The asset manager to be used to load assets.
* @param modelFilename The filepath of the model GraphDef protocol buffer.
* @param labels The list of labels
* @param inputSize The input size. A square image of inputSize x inputSize
is assumed.
* @param imageMean The assumed mean of the image values.
* @param imageStd The assumed std of the image values.
* @param inputName The label of the image input node.
* @param outputName The label of the output node.
* @throws IOException
*/
public static Classifier create(
AssetManager assetManager,
String modelFilename,
List<String> labels,
int inputSize,
int imageMean,
float imageStd,
String inputName,
String outputName) {
}
70. 70
@Override
public List<Recognition> recognizeImage(final Bitmap bitmap) {
// Preprocess bitmap
bitmap.getPixels(intValues, 0, bitmap.getWidth(), 0, 0, bitmap.getWidth(),
bitmap.getHeight());
for (int i = 0; i < intValues.length; ++i) {
final int val = intValues[i];
floatValues[i * 3 + 0] = (((val >> 16) & 0xFF) - imageMean) / imageStd;
floatValues[i * 3 + 1] = (((val >> 8) & 0xFF) - imageMean) / imageStd;
floatValues[i * 3 + 2] = ((val & 0xFF) - imageMean) / imageStd;
}
// Copy the input data into TensorFlow.
inferenceInterface.feed(inputName, floatValues, 1, inputSize, inputSize, 3);
// Run the inference call.
inferenceInterface.run(outputNames, logStats);
// Copy the output Tensor back into the output array.
inferenceInterface.fetch(outputName, outputs);
(continue..)
Preprocess Bitmap / Create Tensor
71. 71
@Override
public List<Recognition> recognizeImage(final Bitmap bitmap) {
// Preprocess bitmap
bitmap.getPixels(intValues, 0, bitmap.getWidth(), 0, 0, bitmap.getWidth(),
bitmap.getHeight());
for (int i = 0; i < intValues.length; ++i) {
final int val = intValues[i];
floatValues[i * 3 + 0] = (((val >> 16) & 0xFF) - imageMean) / imageStd;
floatValues[i * 3 + 1] = (((val >> 8) & 0xFF) - imageMean) / imageStd;
floatValues[i * 3 + 2] = ((val & 0xFF) - imageMean) / imageStd;
}
// Copy the input data into TensorFlow.
inferenceInterface.feed(inputName, floatValues, 1, inputSize, inputSize, 3);
// Run the inference call.
inferenceInterface.run(outputNames, logStats);
// Copy the output Tensor back into the output array.
inferenceInterface.fetch(outputName, outputs);
(continue..)
Feed Input Data to TensorFlow
72. 72
@Override
public List<Recognition> recognizeImage(final Bitmap bitmap) {
// Preprocess bitmap
bitmap.getPixels(intValues, 0, bitmap.getWidth(), 0, 0, bitmap.getWidth(),
bitmap.getHeight());
for (int i = 0; i < intValues.length; ++i) {
final int val = intValues[i];
floatValues[i * 3 + 0] = (((val >> 16) & 0xFF) - imageMean) / imageStd;
floatValues[i * 3 + 1] = (((val >> 8) & 0xFF) - imageMean) / imageStd;
floatValues[i * 3 + 2] = ((val & 0xFF) - imageMean) / imageStd;
}
// Copy the input data into TensorFlow.
inferenceInterface.feed(inputName, floatValues, 1, inputSize, inputSize, 3);
// Run the inference call.
inferenceInterface.run(outputNames, logStats);
// Copy the output Tensor back into the output array.
inferenceInterface.fetch(outputName, outputs);
(continue..)
Run the Inference Call
73. 73
@Override
public List<Recognition> recognizeImage(final Bitmap bitmap) {
// Preprocess bitmap
bitmap.getPixels(intValues, 0, bitmap.getWidth(), 0, 0, bitmap.getWidth(),
bitmap.getHeight());
for (int i = 0; i < intValues.length; ++i) {
final int val = intValues[i];
floatValues[i * 3 + 0] = (((val >> 16) & 0xFF) - imageMean) / imageStd;
floatValues[i * 3 + 1] = (((val >> 8) & 0xFF) - imageMean) / imageStd;
floatValues[i * 3 + 2] = ((val & 0xFF) - imageMean) / imageStd;
}
// Copy the input data into TensorFlow.
inferenceInterface.feed(inputName, floatValues, 1, inputSize, inputSize, 3);
// Run the inference call.
inferenceInterface.run(outputNames, logStats);
// Copy the output Tensor back into the output array.
inferenceInterface.fetch(outputName, outputs);
(continue..)
Fetch the Output Tensor
74. 74
(continue..)
// Find the best classifications.
PriorityQueue<Recognition> pq =
new PriorityQueue<>(
3,
(lhs, rhs) -> {
// Intentionally reversed to put high confidence at the head of the queue.
return Float.compare(rhs.getConfidence(), lhs.getConfidence());
});
for (int i = 0; i < outputs.length; ++i) {
if (outputs[i] > THRESHOLD) {
pq.add(
new Recognition(
"" + i, labels.size() > i ? labels.get(i) : "unknown", outputs[i], null));
}
}
//...
return recognitions;
}
Find the Best Classification
78. Model Fusion
• Start from previous model to keep all specific operations in the graph
• Specify all operations to keep when optimizing for inference
78
graph_util.convert_variables_to_constants(sess, graph.as_graph_def(),
[“final_result_fruits”, “final_result_vegetables”]
85. Currently with Project Magritte…
Training
• Model debug done by overheating a laptop
• Model built on personal GPU
• Files uploaded manually
Model dispensing
• API available
• Deployment on AWS, currently migrating on Google Cloud
85
89. public TensorFlowInferenceInterface(AssetManager assetManager, String model) {
prepareNativeRuntime();
this.modelName = model;
this.g = new Graph();
this.sess = new Session(g);
this.runner = sess.runner();
final boolean hasAssetPrefix = model.startsWith(ASSET_FILE_PREFIX);
InputStream is = null;
try {
String aname = hasAssetPrefix ? model.split(ASSET_FILE_PREFIX)[1] : model;
is = assetManager.open(aname);
} catch (IOException e) {
if (hasAssetPrefix) {
throw new RuntimeException("Failed to load model from '" + model + "'", e);
}
// Perhaps the model file is not an asset but is on disk.
try {
is = new FileInputStream(model);
} catch (IOException e2) {
throw new RuntimeException("Failed to load model from '" + model + "'", e);
}
}
}
Source: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/android/java/org/tensorflow/contrib/android/TensorFlowInferenceInterface.java
90. public TensorFlowInferenceInterface(AssetManager assetManager, String model) {
prepareNativeRuntime();
this.modelName = model;
this.g = new Graph();
this.sess = new Session(g);
this.runner = sess.runner();
final boolean hasAssetPrefix = model.startsWith(ASSET_FILE_PREFIX);
InputStream is = null;
try {
String aname = hasAssetPrefix ? model.split(ASSET_FILE_PREFIX)[1] : model;
is = assetManager.open(aname);
} catch (IOException e) {
if (hasAssetPrefix) {
throw new RuntimeException("Failed to load model from '" + model + "'", e);
}
// Perhaps the model file is not an asset but is on disk.
try {
is = new FileInputStream(model);
} catch (IOException e2) {
throw new RuntimeException("Failed to load model from '" + model + "'", e);
}
}
}
Source: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/android/java/org/tensorflow/contrib/android/TensorFlowInferenceInterface.java
91. public TensorFlowInferenceInterface(AssetManager assetManager, String model) {
prepareNativeRuntime();
this.modelName = model;
this.g = new Graph();
this.sess = new Session(g);
this.runner = sess.runner();
final boolean hasAssetPrefix = model.startsWith(ASSET_FILE_PREFIX);
InputStream is = null;
try {
String aname = hasAssetPrefix ? model.split(ASSET_FILE_PREFIX)[1] : model;
is = assetManager.open(aname);
} catch (IOException e) {
if (hasAssetPrefix) {
throw new RuntimeException("Failed to load model from '" + model + "'", e);
}
// Perhaps the model file is not an asset but is on disk.
try {
is = new FileInputStream(model);
} catch (IOException e2) {
throw new RuntimeException("Failed to load model from '" + model + "'", e);
}
}
}
Source: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/android/java/org/tensorflow/contrib/android/TensorFlowInferenceInterface.java
103. On-device Inferencing
• 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.
103
Source: https://developer.android.com/ndk/guides/neuralnetworks/index.html
104. Source: https://www.tensorflow.org/mobile/tflite/
TensorFlow Lite
• New model file format: based on
FlatBuffers, no parsing/unpacking
step & much smaller footprint
• Mobile-optimized interpreter: uses a
static graph ordering and a custom
(less-dynamic) memory allocator
• Hardware acceleration
105. Federate Learning
Collaborative Machine Learning without Centralized Training Data
105
Source: https://research.googleblog.com/2017/04/federated-learning-collaborative.html