Darkflow: Kesalahan pembentukan kembali tensor aliran tensor

Dibuat pada 8 Apr 2017  ·  3Komentar  ·  Sumber: thtrieu/darkflow

Saya mencoba melatih yolo pada dataset saya sendiri. Saya berhasil melatih overfit pada 10 gambar dengan 2 objek. Inferensi bekerja dengan baik.

Sekarang saya mencoba melatih dataset lengkap 6000 gambar dan mendapatkan kesalahan.
Cmd yang saya gunakan untuk melatih:
./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

Kesalahan sebenarnya:

Disebabkan oleh op 'Reshape', didefinisikan di:
File "./flow", baris 44, di
tfnet = TFNet(BENDERA)
File "/home/ubuntu/darkflow/net/build.py", baris 63, di __init__
self.setup_meta_ops()
File "/home/ubuntu/darkflow/net/build.py", baris 106, di setup_meta_ops
jika self.FLAGS.train: self.build_train_op()
File "/home/ubuntu/darkflow/net/help.py", baris 15, di build_train_op
self.framework.loss(self.out)
File "/home/ubuntu/darkflow/net/yolov2/train.py", baris 56, hilang
net_out_reshape = tf.reshape(net_out, [-1, H, W, B, (4 + 1 + C)])
File "/home/ubuntu/.conda/envs/py3/lib/python3.5/site-packages/tensorflow/python/ops/gen_array_ops.py", baris 2630, dalam bentuk ulang
nama = nama)
File "/home/ubuntu/.conda/envs/py3/lib/python3.5/site-packages/tensorflow/python/framework/op_def_library.py", baris 763, di apply_op
op_def=op_def)
File "/home/ubuntu/.conda/envs/py3/lib/python3.5/site-packages/tensorflow/python/framework/ops.py", baris 2327, di create_op
original_op=self._default_original_op, op_def=op_def)
File "/home/ubuntu/.conda/envs/py3/lib/python3.5/site-packages/tensorflow/python/framework/ops.py", baris 1226, di __init__
self._traceback = _extract_stack()
InvalidArgumentError (lihat di atas untuk traceback): Input untuk membentuk kembali adalah tensor dengan nilai 1149200, tetapi bentuk yang diminta memerlukan kelipatan 18590
[[Node: Reshape = Reshape[T=DT_FLOAT, Tshape=DT_INT32, _device="/ job:localhost/replica :0/ task:0/gpu :0"](output, Reshape/shape)]]
[[Node: mul_30/_195 = _Recv[client_terminated=false, recv_device="/ job:localhost/replica :0/ task:0/cpu :0", send_device="/ job:localhost/replica :0/ tugas: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"]()]]

File labels.txt memiliki 17 label.
Perubahan yang saya buat pada yolo-17c.cfg adalah:
filters=125 untuk lapisan terakhir saya juga mencoba ini dengan 425 dan 35
classes=17 berdasarkan jumlah kelas

Saya menyadari bahwa nomor 18590 dikaitkan dengan width=416, height=416 ketika saya mengubahnya menjadi width=224, height=224 , saya mengerti
...but the requested shape requires a multiple of 21560

@thtrieu , @Dhruv-Mohan , @abagshaw apakah Anda punya ide mengapa saya mendapatkan kesalahan ini ?

Terima kasih atas bantuannya

Komentar yang paling membantu

Anda perlu mengatur filters=110 untuk konv. terakhir. lapisan.
Itu perlu didasarkan pada rumus ini:
filter= #num * (#kelas + 5)

[konvolusi]
ukuran = 1
langkah = 1
pad = 1
filter = 110
aktivasi = linier
[wilayah]
jangkar = 0.738768,0.874946, 2.42204,2.65704, 4.30971,7.04493, 10.246,4.59428, 12.6868,11.8741

Semoga membantu

Semua 3 komentar

Anda perlu mengatur filters=110 untuk konv. terakhir. lapisan.
Itu perlu didasarkan pada rumus ini:
filter= #num * (#kelas + 5)

[konvolusi]
ukuran = 1
langkah = 1
pad = 1
filter = 110
aktivasi = linier
[wilayah]
jangkar = 0.738768,0.874946, 2.42204,2.65704, 4.30971,7.04493, 10.246,4.59428, 12.6868,11.8741

Semoga membantu

@1NNcoder Tolong beri tahu apakah masalah sudah teratasi? Jika ya, Anda dapat menutupnya dan mengosongkan ruang untuk orang lain :)

Ya ini bekerja

Apakah halaman ini membantu?
0 / 5 - 0 peringkat