Darkflow: Error de aserción: lectura excesiva de yolo.weights

Creado en 28 mar. 2017  ·  35Comentarios  ·  Fuente: thtrieu/darkflow

Intenté ejecutar ./flow --test test/ --model cfg/yolo.cfg --load yolo.weights --gpu 1.0

Recibo cargando yolo.weights .... y luego error de aserción: Over-read yolo.weights.

Sin embargo, cuando ejecuto el mismo comando con tiny-yolo.cfg y tiny-yolo.weights, funciona. Descargué el archivo de pesos de https://pjreddie.com/darknet/yolo/

Comentario más útil

@Dhruv-Mohan @kinhunt ver LÉAME actualizado, subí parte del archivo de pesos.

Todos 35 comentarios

Supongo que habías usado pesos incorrectos, no coincidía con cfg. Probé con yolo.cfg y yolo.weights y funcionó bien.
sin embargo, cuando entreno yolo-voc.cfg con una clase personalizada, recibo el mismo mensaje de error con mis pesas entrenadas. Agradecería si alguien puede explicar lo que significa este error.

El analizador .weights sigue a .cfg capa por capa, leyendo el fragmento de bytes correspondiente de .weights , pero aún hay una capa para leer mientras el analizador ya ha llegado al final de .weights ; ahí es cuando tienes el error de aserción.

Por favor, da el comando que conduce a este error. Si desea personalizar su clase, hay algunos lugares para realizar modificaciones:

  1. Número de filtros en la última capa conv en .cfg
  2. class número en la capa region
  3. labels.txt

Entonces corre

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

Intente entrenar su red desde cero, los pesos más recientes https://pjreddie.com/darknet/yolo/ no parecen alinearse con el archivo cfg.
Me encontré con el mismo problema con yolo.weights y yolo-voc.weights, sin embargo, los pesos de mi red entrenada personalizada funcionan bien

¿Podría proporcionar instrucciones para entrenar usando el archivo yolo.cfg? Gracias

El miércoles 29 de marzo de 2017 a las 12:20 p. m., Dhruv-Mohan [email protected]
escribió:

Prueba a entrenar tu red desde cero, los últimos pesos
https://pjreddie.com/darknet/yolo/ no se alinee con el archivo cfg.
Me he encontrado con el mismo problema con yolo.weights y yolo-voc.weights,
sin embargo, los pesos de mi red entrenada personalizada funcionan bien


Usted está recibiendo esto porque usted fue el autor del hilo.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/thtrieu/darkflow/issues/107#issuecomment-289999490 ,
o silenciar el hilo
https://github.com/notifications/unsubscribe-auth/AZgJMHWUgCDnwlS_s1HY5RcBNrVSAWusks5rqf9CgaJpZM4Mrj84
.

el mismo problema. use la instrucción Léame con yolo.cfg y pesos v2 de http://pjreddie.com/media/files/yolo-voc.weights

@kinhunt yolo.cfg y yolo-voc.weights no coinciden. Incluso el nuevo yolo.weights no coincide con yolo.cfg , parece que el sitio oficial de YOLO no guarda sus archivos de manera confiable.

@thtrieu gracias por limpiar. ¿Sabes dónde encontrar los archivos correspondientes?

@kinhunt he buscado durante muchos días y no los he encontrado. Lo mejor que puedes hacer es entrenar desde cero

Puedo subir el mio. Espere ~ 24 horas.

@thtrieu buenas noticias. gracias

@Dhruv-Mohan @kinhunt ver LÉAME actualizado, subí parte del archivo de pesos.

Lo tengo. Gracias. funciona

@thtrieu, ¿ podría proporcionar los pasos que siguió para entrenar en el conjunto de datos de coco para generar el archivo yolo.weights? Me gustaría repetir lo mismo y generar un archivo de pesos para yolov2 en el conjunto de datos de coco.

Hola @thtrieu ,
He seguido los pasos que mencionaste para volver a entrenar el modelo con un número personalizado de clases

[convolucional]
tamaño = 1
zancada=1
pad=1
filtros=30
activación=lineal

[región]
anclas = 1.08,1.19, 3.42,4.41, 6.63,11.38, 9.42,5.11, 16.62,10.52
sesgo_coincidencia=1
clases=1
coordenadas=4
número=5

También tengo una sola etiqueta en label.txt. Pero cuando ejecuto esto con el archivo de pesos diminutos que descargué de su recurso compartido de Google [ https://drive.google.com/drive/folders/0B1tW_VtY7onidEwyQ2FtQVplWEU tiny-yolo-voc.weights], falla con un error de aserción

AssertionError: esperar 63082056 bytes, encontrado 63471556

¿Pueden ayudarme a entender qué podría estar mal aquí?

Tuve un problema similar con un peso previamente entrenado de forma personalizada de darknet, copié el mismo archivo .cfg con el peso para probarlo en darkflow y obtuve:
AssertionError: expect 202314760 bytes, found 202314764
Solo difiere en 4 bytes, ¿me estoy perdiendo algunas configuraciones?

@ deng1028 ¿

@ helloGitHub1993 ¿

@ helloGitHub1993 vaya a loader.py en la carpeta utils, luego cambie self.offset = 20 en la línea 121

@beerboaa usé otra forma. flow -model cfg/yolo-new.cfg (reemplácelo con su cfg de entrenamiento) --load -1 --imgdir yourimgdir. Funciona para mí y puedes intentarlo. Por cierto, no necesitas entrenar de nuevo.

@itsayush ¿
Mi comando:
flujo --tren --modelo cfg/tiny-yolo-voc-1c.cfg --load bin/tiny-yolo-voc.pesos --anotación tren/Anotaciones/ --dataset tren/Imágenes/ --config cfg/ - -gpu 0.9
Pero funciona bien con:
flujo --imgdir muestra_img/ --model cfg/tiny-yolo-voc.cfg --load bin/tiny-yolo-voc.pesos --gpu 0.9
AssertionError: esperar 63471541 bytes, encontrado 63471556

¿Alguien puede ayudarme?

Tengo el mismo problema al usar el código de este git https://github.com/bendidi/Tracking-with-darkflow con tiny-yolo

@hiperfraise
image
Yo tambien tengo el mismo problema, lo solucionaste?

enfrentando el mismo problema. Traté de usar pesos de su unidad de Google con el .cfg correspondiente, trabajé hasta que intenté cambiar el número de clases a 1 (=> filtros en la última capa = 30). ¿Todavía existe la posibilidad de entrenar en un número personalizado de clases con un modelo preentrenado?

Tuve el mismo problema cuando entrené a Yolo con mi propio conjunto de datos personalizado del sitio web de pjreddie e intenté ejecutar el archivo .weights resultante usando darkflow. Tuve el problema de "Error de afirmación: esperar 268283952 bytes, encontrado 268283956". Una vez que cambié self.offset = 20 en la línea 121 en loader.py en la carpeta utils como dijo @beerboaa , funciona bien. Gracias.

@MartinBrisiak, ¿ dónde

no importa, lo tengo funcionando en un entorno con el yolo.weights de @thtrieu y el yolo.cfg en este repositorio
Algo anda mal con el otro ambiente...

@ helloGitHub1993 vaya a loader.py en la carpeta utils, luego cambie self.offset = 20 en la línea 121

si, funciona, muchas gracias

@beerboaa Gracias mahn... funcionó

Parece que los archivos de PJ Reddie no son totalmente compatibles, así que tengo que descargar los pesos preconstruidos del enlace provisto en el LÉAME: https://drive.google.com/drive/folders/0B1tW_VtY7onidEwyQ2FtQVplWEU

Parece que los archivos de PJ Reddie no son totalmente compatibles, así que tengo que descargar los pesos preconstruidos del enlace provisto en el LÉAME: https://drive.google.com/drive/folders/0B1tW_VtY7onidEwyQ2FtQVplWEU

¿dónde encontrar yolov2-voc.pesos? falta... alguna idea?

hay una mezcla con 2 problemas diferentes, el primero si es diferente del archivo de peso existente y la configuración de exactamente 4 bytes, en este caso, debe cambiar el desplazamiento en la línea 121 a 20 (en mi caso está trabajando con yolov2) el segundo caso, si el diferente es más de 4 bytes, este es un archivo de configuración incorrecto para el archivo de peso O en caso de que desee entrenar sus propios objetos, asegúrese de que existe yolov2-voc.cfg en la carpeta de configuración, adjunto el que resuelve la cuestión
cfg-yolov2-voc.zip

Tuve el mismo problema cuando entrené a Yolo con mi propio conjunto de datos personalizado del sitio web de pjreddie e intenté ejecutar el archivo .weights resultante usando darkflow. Tuve el problema de "Error de afirmación: esperar 268283952 bytes, encontrado 268283956". Una vez que cambié self.offset = 20 en la línea 121 en loader.py en la carpeta utils como dijo @beerboaa , funciona bien. Gracias.

para mi no funciona, alguna otra idea? :(

Hola,
Finalmente pude hacerlo funcionar usando este archivo .cfg https://github.com/pjreddie/darknet/blob/master/cfg/yolov2.cfg
y funciona con el peso "yolov2 608X608" de aquí: https://pjreddie.com/darknet/yolo/

Para lidiar con el error

AssertionError: esperar 64701556 bytes, encontrado 180357512

solo corre

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

En cuanto al error de aserción, probablemente se deba a la falta de coincidencia del archivo de configuración y los pesos.

Entonces, encontré un truco a su alrededor. Usa este cuaderno de Zoltan Szabo
El autor proporciona una demostración para solo 2 clases. Entonces, su archivo cfg tiene 2 clases y usa los pesos yolov2-tiny-voc-10000, que se encuentran aquí .
Pero el modelo real (v2-tiny) se entrenó en 20 clases. Entonces, para generar un archivo pb para el modelo real, use el archivo de configuración real del modelo, mantenido por pJreddie en
https://raw.githubusercontent.com/pjreddie/darknet/master/cfg/yolov2-tiny-voc.cfg "

y reemplace el archivo cfg original con este. Deje que los pesos sigan siendo los mismos.

Ahora, el cambio final que debe realizar es en el archivo de texto que contiene los nombres de las clases. Para esto, vaya al archivo de nombres de clases mantenido por pj reddie y péguelos en el archivo de texto presente en /content/darkflow/labels.txt (en Google Collab).

Ahora simplemente ejecute el comando que estaba ejecutando
!./flow --model cfg/yolo-v2-tiny.cfg --load weights/yolov2-tiny-voc_10000.weights --savepb

Y debería obtener el archivo protobuf deseado :yum:

¿Fue útil esta página
0 / 5 - 0 calificaciones