web-dev-qa-db-fra.com

Comment convertir un fichier keras (h5) a un fichier tflite?

J'ai un fichier keras (h5). J'ai besoin de le convertir en tflite ?? J'ai fait des recherches, je dois d'abord passer par h5 -> pb -> tflite (car h5 - tflite entraîne parfois des problèmes)

8
user10638958
from tensorflow.contrib import lite
converter = lite.TFLiteConverter.from_keras_model_file( 'model.h5')
tfmodel = converter.convert()
open ("model.tflite" , "wb") .write(tfmodel)

Vous pouvez utiliser le TFLiteConverter pour convertir directement les fichiers .h5 en fichier .tflite. Cela ne fonctionne pas sous Windows.

Pour Windows, utilisez ceci bloc-notes Google Colab pour convertir. Téléchargez le fichier .h5 et il le convertira en fichier .tflite.

Suivez, si vous voulez l'essayer vous-même:

  1. Créez un bloc-notes Google Colab. Dans le coin supérieur gauche, cliquez sur le bouton "TÉLÉCHARGER" et téléchargez votre fichier .h5.
  2. Créez une cellule de code et insérez ce code.

    from tensorflow.contrib import lite
    converter = lite.TFLiteConverter.from_keras_model_file( 'model.h5' ) # Your model's name
    model = converter.convert()
    file = open( 'model.tflite' , 'wb' ) 
    file.write( model )
    
  3. Exécutez la cellule. Vous obtiendrez un fichier model.tflite. Faites un clic droit sur le fichier et sélectionnez l'option "TÉLÉCHARGER".

8
user9477964

Utilisez cet outil pour convertir en Tensorflow: Keras to Tensorflow Converter

Ensuite, utilisez celui-ci parmi les 3 extraits de code (selon la façon dont vous avez enregistré votre fichier TF) pour convertir ce fichier en TF-Lite:

# Converting a GraphDef from session.
converter = lite.TFLiteConverter.from_session(sess, in_tensors, out_tensors)
tflite_model = converter.convert()
open("converted_model.tflite", "wb").write(tflite_model)

# Converting a GraphDef from file.
converter = lite.TFLiteConverter.from_frozen_graph(
  graph_def_file, input_arrays, output_arrays)
tflite_model = converter.convert()
open("converted_model.tflite", "wb").write(tflite_model)

# Converting a SavedModel.
converter = lite.TFLiteConverter.from_saved_model(saved_model_dir)
tflite_model = converter.convert()
0
codingenthusiast

Seule une version spécifique de Tensorflow et Keras fonctionne correctement dans tous les systèmes d'exploitation. J'ai même essayé la ligne de commande toco mais elle a aussi des problèmes. Utilisez tensorflow == 1.13.0-rc1 et keras == 2.1.3

puis après cela fonctionnera

from tensorflow.contrib import lite
converter = lite.TFLiteConverter.from_keras_model_file( 'model.h5' ) # Your model's name
model = converter.convert()
file = open( 'model.tflite' , 'wb' ) 
file.write( model )
0
KETAN KANJIYA

Il y a un facteur que vous devez considérer. Vous devez changer la phase d'apprentissage , avant de convertir. C'est super important, quand vous avez Dropout ou Batch Normalization. Vous pouvez jeter un œil à 'Modèle Keras en tflite' ou 'Problème après la conversion du modèle Keras en Tensorflow pb' discussions

0
Hazarapet Tunanyan