首先列出在写代码过程中遇到的各种错误
(1)RuntimeError: invalid argument 2: non-empty vector or matrix expected at /pytorch/aten/src/THCUNN/generic/ClassNLLCriterion.cu:31
错误原因:在计算loss时,所用到的mask掩码:
我写的是mask_obj = target[…, 4] > 0.5与
mask_noobj = target[…, 4]< 0.5,这就导致了可能出现小于0的值,所以就出现了上述问题。
改正办法:改写成 mask_obj = target[…, 4] > 0与
mask_noobj = target[…, 4] == 0
(2)RuntimeError: invalid argument 0:size of tensor must match except in dimension 0, Got 1 and 3 indimension 1 at pytorch/aten/src/THCUNN/generic/ClassNLLCriterion.cu:711
错误原因:数据集img图片中,有channel=3的图片,也有channel=1的图片,导致了通道不统一。
改正办法:把通道数改成一致,比如都改成三通道:img=img.convert(‘RGB’)
(3)由于yolov3对输入的图片有了规定,必须是32的倍数我把它定义为416X416的,所以在resize时代码如下: transforms.Compose([transforms.Resize((416,416)