Hi @hud, this could happen if there is an image that does not have any bboxes in it. A fix for this was recently added to fastai - see https://github.com/fastai/fastai/pull/1526/files
Otherwise, you could use our patched collate function instead:
def _bb_pad_collate(samples, pad_idx=0):
"Function that collect `samples` of labelled bboxes and adds padding with `pad_idx`."
arr = []
for s in samples:
try:
arr.append(len(s[1].data[1]))
except Exception as e:
# set_trace()
# print(s[1].data[1],s[1].data[1],e)
arr.append(0)
max_len = max(arr)
# max_len = max([len(s[1].data[1]) for s in samples])
bboxes = torch.zeros(len(samples), max_len, 4)
labels = torch.zeros(len(samples), max_len).long() + pad_idx
imgs = []
for i,s in enumerate(samples):
imgs.append(s[0].data[None])
bbs, lbls = s[1].data
# print(bbs, lbls)
try:
bboxes[i,-len(lbls):] = bbs
labels[i,-len(lbls):] = lbls
except Exception as e:
pass
return torch.cat(imgs,0), (bboxes,labels)