Tensorflow est le framework de Deep Learning de Google, pour en savoir plus, il y a cette page consacrée. La version “Lite” adaptée au fonctionnement en environnements mobiles et embarqués (android/iOS), donc moins puissants et disposant de moins d’espace de stockage, est disponible en pré-version.
TensorFlow Lite prend également en charge l’accélération matérielle avec l’API Android Neural Networks (NNAPI), apparue avec la pré-version d’Android 8.1. L’API Neural Networks est ajoutée via le NDK. A noter que cette dernière sera aussi exploitée par Caffe2.
En cherchant de l’info sur cette “accélération matérielle” je suis tombé sur quelques infos intéressantes. Par exemple, les smartphones Pixel 2 et Pixel 2 XL de Google possèdent un circuit baptisé Pixel Visual Core jusqu’ici inutilisé, une puce 8 cœurs (3 000 milliards d’opérations à la seconde) spécialisée dans le traitement de l’image. Elle prend en charge la fonctionnalité HDR+ dont le principe est de rehausser (ou diminuer) la luminosité des parties sous exposées (ou surexposées) d’une scène afin d’obtenir plus de détails visibles. NNAPI permettrait d’accéder à ce circuit par exemple, car même s’il est spécialisé, on peut tirer partie de ses 8 cœurs pour d’autres opérations probablement. On se doute que ARCore doit également bénéficier de ce circuit.
De même, la nouvelle API shared memory permet d’allouer de la mémoire partagée pour accélérer l’accès à des données communes à des applications, qui peuvent contrôler l’accès à cette mémoire partagée, notamment verrouiller l’accès en écriture aux données qu’elles partagent.
A noter que dans sa forme actuelle, TensorFlow Lite prend en charge l’inférence et non l’entraînement : cela signifie qu’il travaille à partir d’un modèle pré-entrainé. Les modèles actuellement supportés sont Inception V3 (pour détecter les objets dominants présents dans une image), MobileNets (vision, mais + légers) et On Device Smart Reply (analyse de réponses).
Coté développement, le modèle est converti grâce à Tensorflow Lite Converter en un fichier TensorFlow Lite Model File (.tflite). Ensuite, sous Android, on dipose d’une API Java, C++, d’un interpréteur et du support NNAPI. Sous iOS cependant, il n’y a que l’API C++ et l’interpréteur.
Et vous, utilisez vous Tensorflow de votre coté ? Qu’attendez-vous de la version lite ? Avez-vous déjà un retour d’expérience sur le sujet ?
Nvidia proposé une puce spécialisée IA et autres avec Cuda. Des retours ?