Desculpe se isso não é um problema e sim eu! Eu recebo o seguinte erro quando executo este comando:
./flow --model cfg/tiny-yolo.cfg --load bin/yolo-tiny.weights
/Users/localadmin/Downloads/darkflow-master/darkflow/dark/darknet.py:54: UserWarning: ./cfg/yolo-tiny.cfg não encontrado, use cfg/tiny-yolo.cfg em vez disso
cfg_path, FLAGS.model))
Analisando cfg/tiny-yolo.cfg
Carregando bin/yolo-tiny.weights ...
Traceback (última chamada mais recente):
Arquivo "./flow", linha 45, em
tfnet = TFNet(BANDEIRAS)
Arquivo "/Users/localadmin/Downloads/darkflow-master/darkflow/net/build.py", linha 55, em __init__
darknet = Darknet(BANDEIRAS)
Arquivo "/Users/localadmin/Downloads/darkflow-master/darkflow/dark/darknet.py", linha 27, em __init__
self.load_weights()
Arquivo "/Users/localadmin/Downloads/darkflow-master/darkflow/dark/darknet.py", linha 82, em load_weights
wgts_loader = loader.create_loader( args)Arquivo "/Users/localadmin/Downloads/darkflow-master/darkflow/utils/loader.py", linha 105, em create_loaderreturn load_type(caminho, cfg)Arquivo "/Users/localadmin/Downloads/darkflow-master/darkflow/utils/loader.py", linha 19, em __init__self.load( args)
Arquivo "/Users/localadmin/Downloads/darkflow-master/darkflow/utils/loader.py", linha 77, em carregamento
walker.offset, walker.size)
AssertionError: espere 64701556 bytes, encontrado 180357512
Além disso, como sou novo em aprendizado de máquina, você me indicaria algum bom artigo sobre como criar um novo arquivo cfg e como gerar um arquivo de peso do zero, não consigo encontrar isso online!
Parece que há uma inconsistência entre seu arquivo .cfg .weigths file. Tente carregar pesos diferentes ou configuração diferente.
Tente este:
./flow --model ./cfg/tiny-yolo-voc.cfg --load ./bin/tiny-yolo-voc.weights ...
Obrigado pessoal, vou tentar sua sugestão no final desta semana - eu vou deixar você saber como foi.
Parece haver muita confusão em relação à correspondência entre o arquivo .cfg
e .weights
, sempre que a darknet atualiza novas configurações e descarta as antigas, bem como seu binário .weights
. As configurações estáveis que eu conheço usam .cfg
neste repositório e .weights
carregados no google drive (veja README).
@thtrieu , no link abaixo clique aqui [google drive], onde você carregou os pesos, não consigo obter o arquivo .cfg correspondente para yolo-tiny.weights. O presente em cfg/tiny-yolo.cfg não funciona com isso. Estou recebendo o mesmo erro mencionado neste tópico.
Agradeceria sua ajuda!
Obrigado!
Estou com o mesmo erro, alguém conseguiu resolver??
Obrigado!
ja resolvi!!!
Baixe aqui o arquivo .cfg e .weights!!!
Também estou com o mesmo erro, alguém conseguiu resolver??
Sim, resolvi, você deve baixar daqui o arquivo .cfg e .weights!!!
Modifique seu arquivo .cfg na pasta cfg
Ainda tenho um erro. Baixei os arquivos para tiny yolo (tanto cfg quanto pesos), alterei a configuração para rodar com 3 classes e adicionei os nomes das classes a labels.txt
. Eu recebo o erro AssertionError: Over-read ./tiny-yolo.weights
. Como faço para contornar isso? Desde já, obrigado!
preste atenção, eu usei cocos.name para preencher label.txt
@goodhamgupta veja esta edição #80
O problema ainda existe. Infelizmente, o modelo e o peso não são adequados um para o outro. Tentei baixá-lo do site https://pjreddie.com/darknet/yolo/ Tiny YOLO
baseado em COCO trainval
.
A solução sugerida por @evgkarasev - escolha outro modelo e peso com base em VOC 2007+2012
funciona para mim
Eu estava correndo para este "AssertionError" também. Pelo que entendi, isso acontece quando você altera o arquivo cfg (ou seja, o número da classe) e usa pesos que foram criados para o arquivo cfg original. É por isso que você obtém os bits diferentes ao executar o fluxo.
O erro que estava cometendo foi reescrever o arquivo cfg original com minhas novas classes e números de filtro. No darkflow, leia-me, menciona "É crucial que você deixe o tiny-yolo-voc.cfg original".
Então o que eu fiz desde que eu estava trabalhando com 2 class eu copiei o arquivo tiny-yolo-voc.cfg e o renomeei para tiny-yolo-voc-2c.cfg e fiz as alterações na classe e filtro nesta nova cópia. Então, quando comecei a treinar com o fluxo, fiz referência à cópia após --model e funcionou para mim.
Quando ele começa a treinar, noto que ele faz referência a ambos os arquivos cfg ao analisar.
Espero que isto ajude.
@mkuko Você pode dizer o comando
@deepkshikha
Certo,
flow --model cfg/tiny-yolo-voc-2c.cfg --load bin/tiny-yolo-voc.weights --train --annotation (caminho para minha pasta de anotações) --dateset (caminho para minha pasta de imagens)
Eu corro este comando com tiny-yolo-voc.cfg (o arquivo original) e tiny-yolo-voc-2c.cfg na pasta cfg.
@mkuko Obrigado
Eu segui a instrução, deixei o arquivo cfg inalterado e criei um novo cfg alterando o número da classe e o número do filtro ainda não funcionando para mim. Tem mais alguma coisa que você fez??
@deepkshikha
Eu não acredito que eu fiz qualquer outra coisa para corrigir esse problema.
Talvez eu ou outra pessoa aqui possa ajudar, você pode postar o comando que está digitando e o erro que está recebendo?
@thtrieu de acordo com sua sugestão, emparelhei os pesos mencionados na unidade com os arquivos .cfg correspondentes no repositório, mas recebo o AssertionError: espere 64701556 bytes, encontrei 180357512. Antes disso, tentei os pesos (recentemente baixados / atualizados) e .cfg pares do site oficial, mas me deparei com o mesmo erro.
Usei o comando de fluxo básico, aquele sem alterações no arquivo .cfg ou label.txt.
Existe algum par peso-cfg no mundo que ainda esteja funcionando...???
Ei @conjuringjha , eu tive o mesmo problema, mas resolvi apenas subtraindo o valor encontrado (no seu caso 180357512) ao valor esperado (no seu caso 64701556). Suponha que o resultado seja "X".
Agora abra seu arquivo ./darkflow/utils/loader.py e encontre a linha 121. Então você verá uma variável "self.offset" com um determinado valor atribuído (16 ou 20). Vamos supor que o valor seja igual a "Y".
Atualize o valor de self.offset=Y+X
Eu espero que isso te ajude !
Olá;
A proposta de @ThierryBayala resolveu meu problema; Muito obrigado.
eu tive:
AssertionError: espere 63102556 bytes, encontrado 63471556
eu fiz 63471556-63102556=369000
então eu mudei a linha 121 para: self.offset=Y+369000
@ThierryBayala Muito obrigado. Resolveu meu problema também.
Oi,
Instalei o Darkflow globalmente e não tenho ideia de onde posso encontrar o " ./darkflow/utils/loader.py"
mesmo tempo, não consigo encontrar essa pasta no clone "darkflow" recente.
Eu sei que o problema é o arquivo cfg e weight que não está combinando, porque depois de tentar vários CFGs e WEIGHTs, encontrei a correspondência adequada.
MAS MAS eu me pergunto como? enquanto o CFG e o Peso que usei em primeiro lugar foram do " https://pjreddie.com/darknet/ " que eles forneceram originalmente.
Então, onde está o problema?!
@ThierryBayala
@KHDOUDI
@ambr89
@ Ata1362 Li em algum lugar que os pesos em pjreddie.com estão sendo treinados continuamente, o que causa a incompatibilidade com os arquivos CFG.
Obrigada,
Então, como podemos encontrar a incompatibilidade entre o arquivo CFG e Weights e corrigi-la?
Não podemos esperar até que alguém acidentalmente ou depois de combinar muitos CFGs,
encontra o adequado e compartilha conosco.
Em domingo, 12 de maio de 2019 às 20h46 Matt P [email protected] escreveu:
@Ata1362 https://github.com/Ata1362 Li em algum lugar que os pesos
em pjreddie.com estão sendo continuamente treinados, o que causa a incompatibilidade
com os arquivos CFG.—
Você está recebendo isso porque foi mencionado.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/thtrieu/darkflow/issues/223#issuecomment-491592661 ,
ou silenciar o thread
https://github.com/notifications/unsubscribe-auth/AKAIFQNP5URQYAO6FDLY2FTPVAGTPANCNFSM4DLF6APQ
.
@ Ata1362 Eu estava usando o tiny-yolo-voc do site dele, que funcionou corretamente com o tiny-yolo-voc que ele postou aqui: https://drive.google.com/drive/folders/0B1tW_VtY7onidEwyQ2FtQVplWEU
Ei @conjuringjha , eu tive o mesmo problema, mas resolvi apenas subtraindo o valor encontrado (no seu caso 180357512) ao valor esperado (no seu caso 64701556). Suponha que o resultado seja "X".
Agora abra seu arquivo ./darkflow/utils/loader.py e encontre a linha 121. Então você verá uma variável "self.offset" com um determinado valor atribuído (16 ou 20). Vamos supor que o valor seja igual a "Y".
Atualize o valor de self.offset=Y+XEu espero que isso te ajude !
Isso funciona para mim também!!!!!!!!!!
Obrigado @ThierryBayala ,
Isso funciona para mim também.
Comentários muito úteis
Ei @conjuringjha , eu tive o mesmo problema, mas resolvi apenas subtraindo o valor encontrado (no seu caso 180357512) ao valor esperado (no seu caso 64701556). Suponha que o resultado seja "X".
Agora abra seu arquivo ./darkflow/utils/loader.py e encontre a linha 121. Então você verá uma variável "self.offset" com um determinado valor atribuído (16 ou 20). Vamos supor que o valor seja igual a "Y".
Atualize o valor de self.offset=Y+X
Eu espero que isso te ajude !