Je suis un noob TensorFlow. J'ai formé un modèle TensorFlow à partir de l'implémentation open source de deeppose et dois maintenant exécuter le modèle sur un nouvel ensemble d'images.
Le modèle a été formé sur des images de taille 100 * 100
et j'ai donc redimensionné le nouvel ensemble d'images à la même taille. J'ai 149
nouvelles images pour exécuter le modèle. Lorsque je lance le modèle, j'obtiens l'erreur suivante.
InvalidArgumentError (see above for traceback): Assign requires shapes
of both tensors to match. lhs shape= [20] rhs shape= [48]
À la ligne
saver = tf.train.Saver(tf.all_variables())
Je soupçonne que la taille du modèle formé et les tailles des images test ne correspondent pas. Je ne suis pas clair comment résoudre ce problème. J'ai imprimé la liste des variables de l'appel tf.all_variables()
. C'est ici
Tensor("Placeholder:0", shape=(128, 100, 100, 3), dtype=float32)
(11, 11, 3, 20)
conv1/weights:0
(20,)
conv1/biases:0
(5, 5, 20, 35)
conv2/weights:0
(35,)
conv2/biases:0
(3, 3, 35, 50)
conv4/weights:0
(50,)
conv4/biases:0
(3, 3, 50, 75)
conv5/weights:0
(75,)
conv5/biases:0
(300, 1024)
local1/weights:0
(1024,)
local1/biases:0
(1024, 1024)
local2/weights:0
(1024,)
local2/biases:0
(1024, 0)
softmax_linear/weights:0
(0,)
softmax_linear/biases:0
Je ne sais pas d'où vient le paramètre RHS. J'ai examiné tous les fichiers de configuration et il ne semble pas y avoir de paramètre spécifiant cette configuration.
Toute aide pour résoudre ce problème sera grandement appréciée.
Essayez de supprimer tous les points de contrôle qui ont été enregistrés lors des exécutions précédentes. Parfois, lors du changement d'architecture et de la reprise de l'exécution, TF récupérera à partir de l'ancien point de contrôle (mais avec une nouvelle définition) et vous obtiendrez cette erreur.
J'ai aussi rencontré ce problème, le problème étant que les étiquettes et les numéros de classe ne correspondaient pas, j'ai donc modifié et corrigé le numéro de classe et les étiquettes partout.
Dans mon cas, il s’agissait de modifier le paramètre "num_classes" dans le fichier plus rapide_rcnn.config Et le fichier "label_map.pbtxt" avec les valeurs réelles.
Donc, il se trouve que j'avais mis à jour le code TensorFlow mais que je n'avais pas réussi à le former. Alors, je suis revenu à la version précédente, j'ai apporté les nouvelles modifications appropriées au script d'exécution et je l'ai fait fonctionner.