我发现this repo可以作为训练自己的数据集的良好参考。他正在使用tiny-yolo
中的yolov2
。他在readme
中提到更改了tiny-yolo.cfg
中的某些规范:
在tiny-yolo-voc-3c.cfg中,更改[convolutional]层中的过滤器 (倒数第二层)到num *(类+ 5)。在我们的例子中,num是 5,类别为3,因此5 *(3 + 5)= 40,因此过滤器设置为 40。
所以代码是:
[convolutional]
size=1
stride=1
pad=1
filters=40 #num * (classes + 5)
activation=linear
[region]
anchors = 1.08,1.19, 3.42,4.41, 6.63,11.38, 9.42,5.11, 16.62,10.52
bias_match=1
classes=3 #classes you want to train
coords=4
num=5 #num that above statement referred to?
softmax=1
现在darknet
已更新为yolov3
,并且它们确实也有一个tiny-yolo
。因此,我正在考虑使用tiny-yolo(yolov3)
来使用相同的设置进行训练。但是,在tiny-yolo.cfg(yolov3)
中:
[convolutional]
size=1
stride=1
pad=1
filters=255 #num * (classes + 5)??? somehow cannot tally.
activation=linear
[yolo]
mask = 0,1,2
anchors = 10,14, 23,27, 37,58, 81,82, 135,169, 344,319
classes=80 #classes
num=6 #num
jitter=.3
ignore_thresh = .7
truth_thresh = 1
random=1
有一个好的公式吗?过滤器计算不能以某种方式相加。例如,如果我只想训练6个班级,我们如何才能决定最好的?