dimanche 18 mars 2018

Comment utiliser Keras et Tensorflow et créer Android app (classifier)

Nous avons besoin d’entraîner un modèle de Keras (classifier), parce que nous allons utiliser le modèle dans tensorflow sur un android app.

D'abord, installer Keras.
Installer Keras dans Linux

Et tester l'apprentissage profond.
Installer Keras et tester l'apprentissage profond

Maintenant, vous pouvez utiliser Keras. Nous allons créer et entraîner un modèle de Keras.
(Le modèle de Keras est ce que vous pouvez préserver des poids appris ou des informations sur la façon dont les couches sont combinées.) Entraîner un modèle comme ça et créer un fichier .hdf5. J'ai crée un modèle de classification des animaux (animal_model.hdf5).   

Et nous devons transformer animal_model.hdf5 en fichier .pb pour le faire fonctionner sur tensorflow d'android. Pour le transformer, nous allons utiliser ça: keras_to_tensorflow

$ git clone https://github.com/amir-abdi/keras_to_tensorflow
$ cd ./keras_to_tensorflow

Et copier coller le fichier "animal_model.hdf5" dans le dossier "keras_to_tensorflow".

Et faire cette commande:
$ python3.5 keras_to_tensorflow.py -input_model_file ./animal_model.hdf5

Le fichier .pb va être généré dans ce dossier.

Maintenant, nous allons utiliser le modèle pour les applications de tensorflow sur android.
Comment utiliser les applications de tensorflow sur android

Dans le dossier "assets", ajouter le fichier .pb et label.txt.
Écrire les catégories dans le label.txt comme ça:
cat
dog



Changer le nom des fichier dans ClassifierActivity.java.

Et changer "input", "output", "IMAGE_SIZE", "IMAGE_MEAN", "IMAGE_STD".

Vous pouvez obtenir les noms de "input" et "output" comme ça:
>>> import tensorflow as tf
>>> gf = tf.GraphDef()
>>> gf.ParseFromString(open('/votre/path/de/fichier.pb','rb').read())
>>> [n.name + '=>' +  n.op for n in gf.node if n.op in ( 'Softmax','Placeholder')]

Le résultat:
['Mul=>Placeholder', 'final_result=>Softmax']
Mul est input, final_result est output.

Vous pouvez obtenir le "image_size" dans le fichier de python de Keras ce qui vous avez utilisé pour l'apprentissage:
ou...


Démarrer l'application.


Votre modelé sur tensorflow fonctionne comme ça :)  







Aucun commentaire:

Enregistrer un commentaire