5 votes

Erreur lors de la tentative d'accès aux fichiers de l'application

Je suis en train de construire une application react-native qui utilise tensorflow pour reconnaître des images, je suis en train de suivre les étapes de ce tutoriel.

J'ai fait tout selon les explications, y compris la partie de "Récupération de fichiers". J'ai créé le dossier assets et j'ai mis les fichiers dedans (le chemin est correct).

Mais lorsque j'exécute ce code :

const tfImageRecognition = new TfImageRecognition({
    model: require('./assets/tensorflow_inception_graph.pb'),
    labels: require('./assets/tensorflow_labels.txt'),
});

L'application donne l'erreur suivante :

description de l'image ici

J'ai déjà essayé de créer un nouveau projet, j'ai importé le react-native-tensorflow import { TfImageRecognition } from 'react-native-tensorflow';, j'ai mis à jour le cache, j'ai supprimé le dossier node_modules et j'ai également créé le fichier "rn-cli.config.js" qui est demandé dans le tutoriel pour donner accès aux fichiers du dossier assets. Une idée pour résoudre ce problème ?

J'utilise expo pour exécuter l'application sur mobile (android).

  • npm: 5.51
  • expo: 51.4.0
  • react-native: 0.54.0
  • react-native-cli: 2.0.1

1voto

Aavgeen singh Points 111

Ce problème ne s'est pas produit avec moi. Essayez react-native start --reset-cache et lancez à nouveau l'application.

1voto

RANVIR GORAI Points 695

Il y a une meilleure façon de faire cela.

import model from './assets/tensorflow_inception_graph.pb';
import labels from './assets/tensorflow_labels.txt';

const tfImageRecognition = new TfImageRecognition({
    model,
    labels
});

Redémarrez votre serveur.

1voto

Revansiddh Points 1507

J'ai essayé le même exemple que vous avez mentionné et j'ai pu accéder à l'image et au texte. J'ai stocké les fichiers à l'intérieur du assets dans le même répertoire. Pouvez-vous partager le code pour produire une erreur que vous avez rencontrée?

  async recognizeImage() {

    try {
      const tfImageRecognition = new TfImageRecognition({
        model:require('./assets/tensorflow_inception_graph.pb'),
        labels: require('./assets/tensorflow_labels.txt')
      })

      const results = await tfImageRecognition.recognize({
        image: this.image
      })

      const resultText = `Nom: ${results[0].name} - Confiance: ${results[0].confidence}`
      this.setState({result: resultText})

      await tfImageRecognition.close()
    } catch(err) {
      alert(err)
    }
  }

Comme vous l'avez mentionné vous utilisez expo donc je suppose que vous avez déjà exécuté npm eject. Comme react-native-tensorflow cette bibliothèque nécessite des modifications natives

1voto

Vanja Jovicevic Points 11

Vous devez ajouter des extensions dans votre fichier rn-cli.config.js, afin de demander tensorflow_inception_graph.pb et tensorflow_labels.txt

module.exports = {
  getAssetExts() {
    return ['pb', 'txt']
  }
}

0voto

Sidharth Taneja Points 139

Remplacez ./ par ../ , donc le code final sera -

  model: require('../assets/tensorflow_inception_graph.pb'),
  labels: require('../assets/tensorflow_labels.txt')

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X