Darkflow: Erreur d'assertion : lecture excessive de yolo.weights

Créé le 28 mars 2017  ·  35Commentaires  ·  Source: thtrieu/darkflow

J'ai essayé d'exécuter ./flow --test test/ --model cfg/yolo.cfg --load yolo.weights --gpu 1.0

J'obtiens le chargement de yolo.weights .... et puis une erreur d'assertion : Over-read yolo.weights.

Cependant, lorsque j'exécute la même commande avec tiny-yolo.cfg et tiny-yolo.weights, cela fonctionne. J'ai téléchargé le fichier de poids à partir de https://pjreddie.com/darknet/yolo/

Commentaire le plus utile

@Dhruv-Mohan @kinhunt voir README mis à jour, j'ai téléchargé une partie du fichier de poids.

Tous les 35 commentaires

Je suppose que vous aviez utilisé de mauvais poids, cela ne correspondait pas à cfg. J'ai essayé avec yolo.cfg et yolo.weights, cela a bien fonctionné.
Cependant, lorsque j'entraîne yolo-voc.cfg avec une classe personnalisée, j'obtiens le même message d'erreur avec mes poids entraînés. J'apprécierais si quelqu'un peut expliquer ce que signifie cette erreur.

L'analyseur .weights suit .cfg couche par couche, en lisant le bloc d'octets correspondant à partir de .weights , mais il y a encore une couche à lire alors que l'analyseur a déjà atteint la fin de .weights ; c'est alors que vous avez l'erreur d'assertion.

Veuillez donner la commande qui conduit à cette erreur. Si vous souhaitez personnaliser votre classe, il y a quelques endroits pour apporter des modifications :

  1. Nombre de filtres dans la dernière couche conv dans .cfg
  2. class nombre dans la couche region
  3. labels.txt

Puis cours

./flow --model cfg/model.cfg --load bin/model.weights --train

Essayez de former votre réseau à partir de zéro, les derniers poids https://pjreddie.com/darknet/yolo/ ne semblent pas s'aligner avec le fichier cfg.
J'ai rencontré le même problème avec yolo.weights et yolo-voc.weights, mais les poids de mon réseau formé sur mesure fonctionnent très bien

Pourriez-vous fournir des instructions pour vous entraîner à l'aide du fichier yolo.cfg. Merci

Le mer. 29 mars 2017 à 12:20, Dhruv-Mohan [email protected]
a écrit:

Essayez de former votre réseau à partir de zéro, les derniers poids
https://pjreddie.com/darknet/yolo/ ne s'aligne pas avec le fichier cfg.
J'ai rencontré le même problème avec yolo.weights et yolo-voc.weights,
Cependant, les poids de mon réseau formé sur mesure fonctionnent très bien

-
Vous recevez ceci parce que vous avez créé le fil.
Répondez directement à cet e-mail, consultez-le sur GitHub
https://github.com/thtrieu/darkflow/issues/107#issuecomment-289999490 ,
ou couper le fil
https://github.com/notifications/unsubscribe-auth/AZgJMHWUgCDnwlS_s1HY5RcBNrVSAWusks5rqf9CgaJpZM4Mrj84
.

même problème. utilisez l'instruction readme avec les poids yolo.cfg et v2 de http://pjreddie.com/media/files/yolo-voc.weights

@kinhunt yolo.cfg et yolo-voc.weights ne correspondent pas. Même le nouveau yolo.weights ne correspond pas à yolo.cfg , il semble que le site officiel de YOLO ne conserve pas ses fichiers de manière fiable.

@thtrieu merci de débroussailler. savez-vous où trouver les fichiers correspondants ?

@kinhunt j'ai chassé pendant plusieurs jours et je ne les ai pas trouvés. Vous feriez mieux de vous entraîner à partir de zéro

Je peux télécharger le mien. Attendez ~ 24 heures.

@thtrieu bonne nouvelle. Je vous remercie

@Dhruv-Mohan @kinhunt voir README mis à jour, j'ai téléchargé une partie du fichier de poids.

Je l'ai. Merci. Ça marche

@thtrieu pourriez-vous fournir les étapes que vous avez suivies pour formerj sur l'ensemble de données coco afin de générer le fichier yolo.weights. Je voudrais répéter la même chose et générer un fichier de poids pour yolov2 sur l'ensemble de données coco.

Salut @thtrieu ,
J'ai suivi les étapes que vous avez mentionnées pour recycler le modèle avec un nombre personnalisé de classes

[convolutionnel]
taille=1
foulée=1
pad=1
filtres=30
activation=linéaire

[Région]
ancres = 1.08,1.19, 3.42,4.41, 6.63,11.38, 9.42,5.11, 16.62,10.52
bias_match=1
cours=1
coordonnées=4
nombre=5

J'ai aussi une seule étiquette dans label.txt. Mais lorsque je l'exécute avec le petit fichier de poids que j'ai téléchargé à partir de votre partage google [ https://drive.google.com/drive/folders/0B1tW_VtY7onidEwyQ2FtQVplWEU tiny-yolo-voc.weights], il échoue avec une erreur d'assertion

AssertionError : attendez 63082056 octets, trouvé 63471556

Pouvez-vous m'aider à comprendre ce qui ne va pas ici.

J'ai eu un problème similaire avec un poids précédemment formé sur darknet, j'ai copié le même fichier .cfg avec le poids pour l'essayer sur darkflow et j'ai obtenu :
AssertionError: expect 202314760 bytes, found 202314764
Il ne diffère que de 4 octets, est-ce que certains paramètres me manquent ?

@deng1028 avez-vous déjà résolu votre problème ? J'ai le même problème.

@helloGitHub1993 avez-vous déjà résolu votre problème ? J'ai le même problème.

@helloGitHub1993 allez dans loader.py dans le dossier utils, puis changez self.offset = 20 à la ligne 121

@beerboaa j'ai utilisé un autre moyen. flow -model cfg/yolo-new.cfg (remplacez-le par votre cfg d'entraînement) --load -1 --imgdir yourimgdir. Cela fonctionne pour moi et vous pouvez essayer. Au fait, vous n'avez pas besoin de vous entraîner à nouveau.

@itsayush as-tu déjà résolu ton problème ? J'ai également suivi les mêmes étapes que vous et j'ai le même problème avec la formation de données personnalisées (1 classe). J'ai essayé de changer self.offset = 1 dans loader.py, cela n'a pas fonctionné.
Ma commande :
flow --train --model cfg/tiny-yolo-voc-1c.cfg --load bin/tiny-yolo-voc.weights --annotation train/Annotations/ --dataset train/Images/ --config cfg/ - -gpu 0.9
Mais ça marche bien avec :
flux --imgdir sample_img/ --model cfg/tiny-yolo-voc.cfg --load bin/tiny-yolo-voc.weights --gpu 0.9
AssertionError : attendez 63471541 octets, trouvé 63471556

Quelqu'un peut-il m'aider?

J'ai le même problème en utilisant le code de ce git https://github.com/bendidi/Tracking-with-darkflow avec tiny-yolo

@hyperfraise
image
J'ai aussi le même problème, le résolvez-vous ?

confronté au même problème. j'ai essayé d'utiliser les poids de votre lecteur google avec le .cfg correspondant, j'ai travaillé jusqu'à ce que j'essaye de changer le nombre de classes en 1 (=> filtres dans la dernière couche = 30). Existe-t-il encore une possibilité de s'entraîner sur un nombre personnalisé de classes avec un modèle pré-entraîné ?

J'ai eu le même problème lorsque j'ai formé Yolo avec mon propre ensemble de données personnalisé à partir du site Web de pjreddie et j'ai essayé d'exécuter le fichier .weights résultant à l'aide de darkflow. J'ai eu le problème de "Erreur d'assertion : attendez 268283952 octets, trouvé 268283956". Une fois que j'ai modifié self.offset = 20 à la ligne 121 dans loader.py dans le dossier utils comme l' a dit

@MartinBrisiak où avez-vous obtenu le .cfg correspondant ?

peu importe, je l'ai exécuté dans un environnement avec le yolo.weights de @thtrieu et le yolo.cfg dans ce référentiel
quelque chose ne va pas avec l'autre environnement...

@helloGitHub1993 allez dans loader.py dans le dossier utils, puis changez self.offset = 20 à la ligne 121

oui ça marche merci beaucoup

@beerboaa Merci mahn..ça a fonctionné

Il semble que les fichiers PJ Reddie ne soient pas entièrement compatibles, je dois donc télécharger les poids pré-construits à partir du lien fourni dans le README : https://drive.google.com/drive/folders/0B1tW_VtY7onidEwyQ2FtQVplWEU

Il semble que les fichiers PJ Reddie ne soient pas entièrement compatibles, je dois donc télécharger les poids pré-construits à partir du lien fourni dans le README : https://drive.google.com/drive/folders/0B1tW_VtY7onidEwyQ2FtQVplWEU

où trouver les poids yolov2-voc.? manque... une idée ?

il y a un mélange avec 2 problèmes différents, le premier s'il est différent du fichier de poids existant et la configuration d'exactement 4 octets dans ce cas, vous devez modifier l'offset de la ligne 121 à 20 (dans mon cas, cela fonctionne avec yolov2) le deuxième cas si le différent fait plus de 4 octets, c'est un mauvais fichier de configuration pour le fichier de poids OU si vous voulez former vos propres objets assurez-vous que yolov2-voc.cfg existe dans le dossier de configuration, je joins celui qui résout le problème
cfg-yolov2-voc.zip

J'ai eu le même problème lorsque j'ai formé Yolo avec mon propre ensemble de données personnalisé à partir du site Web de pjreddie et j'ai essayé d'exécuter le fichier .weights résultant à l'aide de darkflow. J'ai eu le problème de "Erreur d'assertion : attendez 268283952 octets, trouvé 268283956". Une fois que j'ai modifié self.offset = 20 à la ligne 121 dans loader.py dans le dossier utils comme l' a dit

pour moi ça ne marche pas, d'autres idées ? :(

Salut,
J'ai finalement pu le faire fonctionner en utilisant ce fichier .cfg https://github.com/pjreddie/darknet/blob/master/cfg/yolov2.cfg
et cela fonctionne avec le poids "yolov2 608X608" d'ici : https://pjreddie.com/darknet/yolo/

Pour faire face à l'erreur

AssertionError : attendez 64701556 octets, trouvé 180357512

juste courir

$ cd /content/darkflow
$ !sed -i "s/self.offset = 16/self.offset = 20/g"  ./darkflow/utils/loader.py

Concernant l'erreur d'assertion, elle est probablement due à la non-concordance du fichier de configuration et des poids.

Donc, j'ai trouvé un hack autour de ça. Utilisez ce carnet de Zoltan Szabo
L'auteur fournit une démo pour seulement 2 classes. Ainsi, son fichier cfg a 2 classes et utilise les poids yolov2-tiny-voc-10000, trouvés ici .
Mais le modèle réel (v2-tiny) a été formé sur 20 classes. Ainsi, pour générer un fichier pb pour le modèle réel, utilisez le fichier de configuration réel du modèle, maintenu par pJreddie à
https://raw.githubusercontent.com/pjreddie/darknet/master/cfg/yolov2-tiny-voc.cfg "

et remplacez le fichier cfg d'origine par celui-ci. Laissez les poids restent les mêmes.

Maintenant, la dernière modification que vous devez apporter concerne le fichier texte contenant les noms de classe. Pour cela, allez dans le fichier des noms de classes maintenu par pj reddie et collez-les dans le fichier texte présent dans /content/darkflow/labels.txt (dans Google Collab).

Maintenant, exécutez simplement la commande que vous exécutiez
!./flow --model cfg/yolo-v2-tiny.cfg --load weights/yolov2-tiny-voc_10000.weights --savepb

Et vous devriez obtenir le fichier protobuf souhaité :miam:

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

Questions connexes

humanova picture humanova  ·  4Commentaires

eugtanchik picture eugtanchik  ·  4Commentaires

jubjamie picture jubjamie  ·  4Commentaires

pribadihcr picture pribadihcr  ·  5Commentaires

1NNcoder picture 1NNcoder  ·  3Commentaires