Tensorflow: Utiliser les catégories recyclées dans la démo de l'appareil photo Android

Créé le 1 août 2016  ·  1Commentaire  ·  Source: tensorflow/tensorflow

Les problèmes GitHub concernent les bogues / problèmes d'installation / demandes de fonctionnalités.
Pour une assistance générale de la part de la communauté, consultez StackOverflow .
Pour faciliter la recherche et l'organisation des bogues et des demandes de fonctionnalités, nous fermons les problèmes jugés
hors de portée pour les problèmes GitHub et dirigez les gens vers StackOverflow.

Pour les bogues ou les problèmes d'installation, veuillez fournir les informations suivantes.
Plus vous fournirez d'informations, plus nous pourrons facilement vous proposer
aide et conseils.

Informations sur l'environnement

Système d'exploitation : Docker sous Windows

Version installée de CUDA et cuDNN :
(veuillez joindre la sortie de ls -l /path/to/cuda/lib/libcud* ):

S'il est installé à partir du package binaire pip, fournissez :

  1. Quel paquet pip vous avez installé.
  2. La sortie de python -c "import tensorflow; print(tensorflow.__version__)" .

S'il est installé à partir de la source, fournissez

  1. Le hachage de commit ( git rev-parse HEAD )
  2. La sortie de bazel version

Étapes à reproduire

  1. Recyclez avec succès les nouvelles données avec Docker. Obtenez les deux fichiers recyclés retrained_graph.pb et retrained_labels.txt
    https://codelabs.developers.google.com/codelabs/tensorflow-for-poets/index.html?index=..%2F..%2Findex#5
  2. Essayez d'installer Bazel sur Windows mais échouez. Mais j'ai trouvé une démo Android qui n'a pas besoin de Bazel. Celui-ci fonctionne bien sur Windows. Il peut reconnaître des images en 1000 classes fournies par ImageNet dans une caméra en temps réel Android.
    https://github.com/miyosuda/TensorFlowAndroidDemo

    Qu'as-tu essayé ?

Référence; https://github.com/tensorflow/tensorflow/issues/1269
Sur la base des suggestions, j'ai essayé les choses suivantes:
1.Trouvez le coded_stream.h dans la section google/protobuf de votre build tensorflow et modifiez le 64 à 256 dans la ligne suivante :
statique const int kDefaultTotalBytesLimit = 64 << 20; // Changer le 64 à 256 Mo
2.Modifiez uniquement input_size à 299 et image_mean à 128 dans TensorflowImageListener.java
3. Accédez à tensorflow_jni.cc dans la démo Android et modifiez comme suit :

  input_tensor_mapped(0, i, j, 0) =
      (static_cast<float>(src->red) - g_image_mean)/g_image_mean;
  input_tensor_mapped(0, i, j, 1) =
      (static_cast<float>(src->green) - g_image_mean)/g_image_mean;
  input_tensor_mapped(0, i, j, 2) =
      (static_cast<float>(src->blue) - g_image_mean)/g_image_mean;
  ++src;

std::vector<:pair i="47"> > input_tensors(
{{"Mul", input_tenseur}} );

std :: vectorstd :: string output_names({"softmax"});
4.Effectuez les modifications suivantes dans TensorflowImageListerner.java :
Chaîne finale statique privée MODEL_FILE = "file:///android_asset/retrained_graph.pb" ;
Chaîne finale statique privée LABEL_FILE =
"file:///android_asset/retrained_labels.txt" ;

  1. Créer la démo Android

Journaux ou autre sortie qui serait utile

(Si les journaux sont volumineux, veuillez les télécharger en pièce jointe).
08-01 17:36:50.015 14978-15121/org.tensorflow.tensorflowdemo A/natif : jni_utils.cc:107 Échec de la vérification : message->ParseFromZeroCopyStream(&adaptateur)
08-01 17:36:50.015 14978-15121/org.tensorflow.tensorflowdemo A/libc : signal fatal 6 (SIGABRT), code -6 dans tid 15121 (ImageListener)

Je sais que c'est un problème dû aux variables incompatibles d'Inception v3 et d'Inception 5h. Le modèle de démonstration Android que j'utilise est Inception 5h, mais le modèle que j'ai utilisé pour former mes nouvelles données est Inception 3v. J'ai essayé de modifier les variables mentionnées ici : https://github.com/tensorflow/tensorflow/issues/1269.
Mais j'obtiens toujours les mêmes erreurs. Quelqu'un pourrait-il m'aider à expliquer comment adapter mes nouvelles données formées en cours d'exécution dans la démo Android ?

>Tous les commentaires

Ce genre de question est mieux posé sur StackOverflow. Ce forum est pour les rapports de bugs et similaires. S'il vous plaît posez votre question là-bas, en marquant avec 'tensorflow'.

Si vous rencontrez des problèmes avec bazel, vous pouvez essayer tensorflow makefile .

Cette page vous a été utile?
0 / 5 - 0 notes