Darkflow: Erro de remodelagem do tensor de fluxo do tensor

Criado em 8 abr. 2017  ·  3Comentários  ·  Fonte: thtrieu/darkflow

Estou tentando treinar yolo em meu próprio conjunto de dados. Consegui ajustar com sucesso o trem em 10 imagens com 2 objetos. A inferência funciona bem.

Agora estou tentando treinar com o conjunto de dados completo de 6.000 imagens e obtenho um erro.
O cmd que uso para treinar:
./flow --train --dataset /home/ubuntu/datasets/img/ --annotation /home/ubuntu/datasets/anno/ --model cfg/yolo-17c.cfg --load bin/yolo.weights --keep 5 --epoch 30000 --save 1000 --lr 0.00001 --batch 16 --gpu .8

O erro real:

Causado por op 'Reshape', definido em:
Arquivo "./flow", linha 44, em
tfnet = TFNet (FLAGS)
Arquivo "/home/ubuntu/darkflow/net/build.py", linha 63, em __init__
self.setup_meta_ops ()
Arquivo "/home/ubuntu/darkflow/net/build.py", linha 106, em setup_meta_ops
if self.FLAGS.train: self.build_train_op ()
Arquivo "/home/ubuntu/darkflow/net/help.py", linha 15, em build_train_op
self.framework.loss (self.out)
Arquivo "/home/ubuntu/darkflow/net/yolov2/train.py", linha 56, perdido
net_out_reshape = tf.reshape (net_out, [-1, H, W, B, (4 + 1 + C)])
Arquivo "/home/ubuntu/.conda/envs/py3/lib/python3.5/site-packages/tensorflow/python/ops/gen_array_ops.py", linha 2630, em reformulação
nome = nome)
Arquivo "/home/ubuntu/.conda/envs/py3/lib/python3.5/site-packages/tensorflow/python/framework/op_def_library.py", linha 763, em apply_op
op_def = op_def)
Arquivo "/home/ubuntu/.conda/envs/py3/lib/python3.5/site-packages/tensorflow/python/framework/ops.py", linha 2327, em create_op
original_op = self._default_original_op, op_def = op_def)
Arquivo "/home/ubuntu/.conda/envs/py3/lib/python3.5/site-packages/tensorflow/python/framework/ops.py", linha 1226, em __init__
self._traceback = _extract_stack ()
InvalidArgumentError (veja acima para traceback): A entrada para remodelar é um tensor com 1149200 valores, mas a forma solicitada requer um múltiplo de 18590
[[Node: Remodelar = Remodelar [T = DT_FLOAT, Tshape = DT_INT32, _device = "/ job: localhost / replica : 0 / task: 0 / gpu : 0"] (saída, Remodelar / dar forma)]]
[[Nó: mul_30 / _195 = _Recv [client_terminated = false, recv_device = "/ job: localhost / replica : 0 / task: 0 / cpu : 0", send_device = "/ job: localhost / replica : 0 / task: 0 / gpu : 0 ", send_device_incarnation = 1, tensor_name =" edge_188_mul_30 ", tensor_type = DT_FLOAT, _device =" / job: localhost / replica : 0 / task: 0 / cpu : 0 "] ()]]

Meu arquivo labels.txt tem 17 rótulos.
As alterações que fiz no yolo-17c.cfg são:
filters=125 para a última camada, também tentei fazer isso com 425 e 35
classes=17 base no número de aulas

Eu percebo que o número 18590 está associado a width=416, height=416 quando eu mudo para width=224, height=224 , eu entendo
...but the requested shape requires a multiple of 21560

@thtrieu , @ Dhruv-Mohan, @abagshaw , você tem alguma ideia de por que estou recebendo este erro?

Obrigado pela ajuda

Comentários muito úteis

Você precisa definir filters=110 para a última conv. camada.
Precisa se basear nesta fórmula:
filtros = #num * (#classes + 5)

[convolucional]
tamanho = 1
passada = 1
pad = 1
filtros = 110
ativação = linear
[região]
âncoras = 0,738768,0.874946, 2.42204,2.65704, 4.30971,7.04493, 10.246,4.59428, 12.6868,11.8741

espero que ajude

Todos 3 comentários

Você precisa definir filters=110 para a última conv. camada.
Precisa se basear nesta fórmula:
filtros = #num * (#classes + 5)

[convolucional]
tamanho = 1
passada = 1
pad = 1
filtros = 110
ativação = linear
[região]
âncoras = 0,738768,0.874946, 2.42204,2.65704, 4.30971,7.04493, 10.246,4.59428, 12.6868,11.8741

espero que ajude

@ 1NNcoder Por favor, diga se o problema já foi resolvido? Se estiver, você pode fechá-lo e liberar espaço para outras pessoas :)

Sim funciona

Esta página foi útil?
0 / 5 - 0 avaliações