0
votes

converti_model.tflite n'encore pas un modèle TENSORFLOWLITE valide: Impossible d'ouvrir File_Path. Le modèle n'est pas un fichier Flatbuffer valide

J'essaie de charger convertid_tflite.tflite dans le répertoire des actifs.
Il me donne une erreur java.lang.illegalargumentException: contenu de /file:/androïd_asset/converted_model.tflite n'encore pas un modèle TENSORFLOWLITE valide: impossible d'ouvrir '/file:/android_asset/converted_model.tflite. N'est-ce pas un fichier Flatbuffer valide xxx

ce que j'ai essayé en fonction des réponses Stackoverflow xxx

Version nocturne Tensoflow-Lite < / p> xxx


0 commentaires

3 Réponses :


1
votes

Erreur indique que le modèle n'est pas un fichier Flatbuffer valide . Dans votre implémentation, le modèle est en tant que fichier . Il est censé être converti au fichier Flatbuffer comme implémenté ci-dessous, xxx

et que vous pouvez utiliser ce tflite_model pour créer un interpréteur Tflite comme nouvel interprète (.. .) .


3 commentaires

Toujours Obtenir une erreur causée par: Java.lang.illegalargumentException: BYTEBUFFER n'est pas un modèle FlightBuffer valide à org.tensorflow.lite.nativeInterpreterwrapper.createmodelVith tampon (méthode natif) à org.tensorflow.lite.nativeInterpreterwrapper. (Natifin Terpreterwrapper.jav A: 59) à org.tensorflow.lite.Interprort. (interpréteur.java:224) à org.tensorflow.lite.interprètre. (interpréteur.java:212) / code>


Pouvez-vous mettre à jour votre question avec la version Tensorflow? et une partie du script qui jette cette erreur.


Mise en œuvre 'Org.Tensorflow: Tensorflow-Lite: 0,1.2-Nightly' Cependant, je l'ai fait fonctionner.



2
votes

J'ai utilisé la version 0.1.2

/** Memory-map the model file in Assets. */
private static MappedByteBuffer loadModelFile(AssetManager assets, String modelFilename)
        throws IOException {
    AssetFileDescriptor fileDescriptor = assets.openFd(modelFilename);
    FileInputStream inputStream = new FileInputStream(fileDescriptor.getFileDescriptor());
    FileChannel fileChannel = inputStream.getChannel();
    long startOffset = fileDescriptor.getStartOffset();
    long declaredLength = fileDescriptor.getDeclaredLength();
    return fileChannel.map(FileChannel.MapMode.READ_ONLY, startOffset, declaredLength);
}


1 commentaires

J'ai essayé cela mais j'ai eu l'erreur: ne pouvait pas trouver org.tensorflow: Tensorflow-Lite-GPU: 0,1.2-Nightly. Requis par: Projet: App



0
votes

Ajout aux réponses existantes, si vous avez créé le modèle Tflite avec la dernière version Tensorflow (2.4.0) et faire face à un problème similaire, ajoutez la ligne ci-dessous aux dépendances du fichier Build.Gradle xxx

et utilisez la fonction fournie par @lalittshama pour charger le modèle du répertoire "Actifs".

peut trouver la version la plus récente ici https://bintray.com/google/tensorflow/tensorflow-lite


0 commentaires