Darkflow: AssertionError: espera 44948596 bytes, encontrado 44948600

Criado em 10 jun. 2018  ·  20Comentários  ·  Fonte: thtrieu/darkflow

então, quando eu uso este comando em cmd c: \ dark \ darkflow-master> python flow --model cfg / yolov2-tiny.cfg --load bin / yolov2-tiny.weights
e então este erro aparece
2018-06-10 1
Por favor me ajude a corrigir isso

Comentários muito úteis

Todos 20 comentários

Oi, eu também tenho esse problema.
mesmo yolov2-tiny.
AssertionError: esperar 63820056 bytes, encontrado 63820060
Alguém pode nos ajudar?

obrigado por esse link
e btw você quer entrar em contato comigo para que possamos ajudar um ao outro neste negócio de darkflow?

Eu tive o mesmo erro com yolo, não com tiny-yolo,
tente reduzir a largura e a altura no arquivo cfg.it resolveu o problema para mim.
tenha em mente que os valores de largura e altura devem ser múltiplos de 32

Eu tenho o mesmo problema. Modifiquei yolov2.cfg com 3 classes e usei yolov2.weights para treinar meu próprio conjunto de dados.
Tentei este método https://sites.google.com/view/tensorflow-example-java-api/complete-guide-to-train-yolo/convert-darknet-weights-to-pb-file para resolver o problema. No entanto, não funciona. Substituí o deslocamento = 16 por deslocamento = 20, deslocamento par = 40.

zihang @ derek : ~ / project / darkflow $ flow --model cfg / yolov2-3c.cfg --load bin / yolov2.weights --train --annotation train / Anotações --dataset train / Imagens --gpu 1.0

/home/zihang/anaconda3/envs/tensorflow/lib/python3.6/site-packages/darkflow/dark/darknet.py:54: UserWarning: ./cfg/yolov2.cfg não encontrado, use cfg / yolov2-3c. cfg ao invés
cfg_path, FLAGS.model))
Analisando cfg / yolov2-3c.cfg
Carregando bin / yolov2.weights ...
Traceback (última chamada mais recente):
Arquivo "/ home / zihang / anaconda3 / envs / tensorflow / bin / flow", linha 6, em
cliHandler (sys.argv)
Arquivo "/home/zihang/anaconda3/envs/tensorflow/lib/python3.6/site-packages/darkflow/cli.py", linha 26, em cliHandler
tfnet = TFNet (FLAGS)
Arquivo "/home/zihang/anaconda3/envs/tensorflow/lib/python3.6/site-packages/darkflow/net/build.py", linha 58, em __init__
darknet = Darknet (FLAGS)
Arquivo "/home/zihang/anaconda3/envs/tensorflow/lib/python3.6/site-packages/darkflow/dark/darknet.py", linha 27, em __init__
self.load_weights ()
Arquivo "/home/zihang/anaconda3/envs/tensorflow/lib/python3.6/site-packages/darkflow/dark/darknet.py", linha 82, em load_weights
wgts_loader = loader.create_loader ( args)Arquivo "/home/zihang/anaconda3/envs/tensorflow/lib/python3.6/site-packages/darkflow/utils/loader.py", linha 105, em create_loaderretornar load_type (caminho, cfg)Arquivo "/home/zihang/anaconda3/envs/tensorflow/lib/python3.6/site-packages/darkflow/utils/loader.py", linha 19, em __init__self.load ( args)
Arquivo "/home/zihang/anaconda3/envs/tensorflow/lib/python3.6/site-packages/darkflow/utils/loader.py", linha 77, no carregamento
walker.offset, walker.size)
AssertionError: esperar 202355760 bytes, encontrado 203934260

Eu também mesmo erro .... não consigo resolver ..... Alguém me ajude

Ai Jesus!
Venha ver o que encontrei aqui!
https://sites.google.com/view/tensorflow-example-java-api/complete-guide-to-train-yolo/convert-darknet-weights-to-pb-file

Não entendo porque, mas funciona !!! obrigada!!

@ dudqls1994
1. Primeiro de tudo, primeiro instalamos o tensorflow com anaconda2 no ubuntu (a versão 2 ou 3 não afeta).
2. O ambiente de instalação exigido pelo darkflow é Python3, então atualize Python2 em anaconda2 para python3.5. O sistema Ubuntu vem com python2.7 por padrão. Ao usar darkflow, use source activate py35 para entrar no ambiente Python3.5 e use-o O comando de fluxo servirá.
3. Em seguida, você pode instalar o darkflow em qualquer lugar, mas precisa instalá-lo no ambiente py35, mudar para a fonte do ambiente Python, ativar py35 e instalá-lo, você verá a pasta darkflow, esta pasta é inútil, na instalação do darkflow Ele será copiado automaticamente para anaconda2 / envs / py34 / lib / python3.5 / site-packages / darkflow / utils (quando chamei Python3.5, apertei minhas mãos e o transformei em py34). mudança é o carregador no diretório acima. linha 121 da py, altere self.offset = 16 para self.offset = 20

Ai Jesus!
Venha ver o que encontrei aqui!
https://sites.google.com/view/tensorflow-example-java-api/complete-guide-to-train-yolo/convert-darknet-weights-to-pb-file

Obrigado cara, você é um salva-vidas

Tentei a solução @ideaRunner , não funcionou completamente, exibi outro erro, então eu reduzi o GPU de 1.0 para 0.8 e funcionou bem! Obrigado @ideaRunner! Desculpe por não anexar nenhuma captura de tela, eu teria que recriar o problema.
NB: Se você usar o mesmo gpu para o seu monitor, pode criar um problema para usar 0,8 do gpu, então eu recomendo que você reduza o uso de gpu para 0,7 e funcionará bem!

Ai Jesus!
Venha ver o que encontrei aqui!
https://sites.google.com/view/tensorflow-example-java-api/complete-guide-to-train-yolo/convert-darknet-weights-to-pb-file

então não temos que entrar no link que pode quebrar um dia:

A solução é muito simples, vamos modificar a linha self.offset = 16 no arquivo ./darkflow/utils/loader.py e substituir por self.offset = 20.

Para mim não funcionou. a diferença entre esperar e encontrar diminuiu muito, embora

Ai Jesus!
Venha ver o que encontrei aqui!
https://sites.google.com/view/tensorflow-example-java-api/complete-guide-to-train-yolo/convert-darknet-weights-to-pb-file

então não temos que entrar no link que pode quebrar um dia:

A solução é muito simples, vamos modificar a linha self.offset = 16 no arquivo ./darkflow/utils/loader.py e substituir por self.offset = 20.

Para mim não funcionou. a diferença entre esperar e encontrar diminuiu muito, embora

Eu tive o mesmo problema, mas pode ser resolvido corrigindo self.offset

se 44948596 bytes, encontrado 44948600

significa que a diferença (44948600- 44948596) deve ser adicionada a self.offset.

self.offset = self.offset + 4 diferença (44948600- 44948596)

palma do rosto *
obrigado @ shalin51

@ shalin51 Isso significa que a nova função de andar deve ser:

def walk (próprio, tamanho):
if self.eof: return None
end_point = self.offset + 4 * (44948600- 44948596)
assert end_point <= self.size, \
'Over-read {}'. Formato (self.path)

Devemos apenas deletar o parâmetro de tamanho então?

Aqui está minha solução:

  1. pip desinstalação darkflow
  2. altere o código-fonte em ./darkflow/utils/loader.py, apenas exclua a "declaração assert" ou substitua por um aviso
  3. reinstale-o por pip install -e .

Funciona para mim.

Aviso: você ainda precisa descobrir se o seu arquivo cfg e os pesos e os rótulos.txt correspondem uns aos outros.

Eu resolvi o problema.

http://tn00343140a.pixnet.net/blog/post/299895872-yolo%e9%81%8b%e8%a1%8cdarkflow%e6%99%82%2c-%e5%87%ba%e7%8f%beassertionerror % 3a-expect-20392940

Encontre o arquivo "loader.py" e altere o valor de "self.offset".
self.offset atualizado = old_offset_value + (found_value - valor_esperado)

Eu também resolvi.

estou apenas alterando o valor self.offset como '20' "loader.py" em ~ / darkflow / utils

Eu não sei por que isso está funcionando. mas é trabalho!

Tenho tentado todos os métodos especificados acima. Mas nada disso parece estar funcionando !!

Existe alguma outra maneira de resolver esse problema !!

Ai Jesus!
Venha ver o que encontrei aqui!
https://sites.google.com/view/tensorflow-example-java-api/complete-guide-to-train-yolo/convert-darknet-weights-to-pb-file

Sinceramente não sei como funciona, mas resolveu meu problema, ótimo !!

diff --git a / darkflow / utils / loader.py b / darkflow / utils / loader.py
índice 723560d..e2fdaea 100644
--- a / darkflow / utils / loader.py
+++ b / darkflow / utils / loader.py
@@ -118,7 +118,8 @@ classweight_walker (objeto):
forma = (), modo = 'r', deslocamento = 0,
dtype = '({}) i4,'. formato (4))
self.transpose = major> 1000 or minor> 1000
- self.offset = 16
+ self.offset = 20

  def walk(self, size):
      if self.eof: return None
Esta página foi útil?
0 / 5 - 0 avaliações