def load_darknet_weights(self, weights, cutoff=-1):
# Parses and loads the weights stored in 'weights'
# cutoff: save layers between 0 and cutoff (if cutoff = -1 all are saved)
weights_file = weights.split(os.sep)[-1]
# Try to download weights if not available locally
if not os.path.isfile(weights):
try:
os.system('wget https://pjreddie.com/media/files/' + weights_file + ' -O ' + weights)
except IOError:
print(weights + ' not found')
# Establish cutoffs
if weights_file == 'darknet53.conv.74':
cutoff = 75
elif weights_file == 'yolov3-tiny.conv.15':
cutoff = 15
它looks like在这种情况下,这个模型中的层数可能是可变的。在paper中,它说Darknet53有53层。但是在他们的train.py文件中,他们有一个基于您所使用的Darknet模型的层数的截止值。具体来说:
这段代码是说,如果您使用的是Darknet惊厥74文件,那么层数的截止值将是75。如果你用的是暗黑惊厥15文件,在15层会有一个截止。在
因此,您需要检查下载的Darknet文件并确定使用的版本。基于此,我将使用75,因为您似乎使用了
darknet54.conv.74
此外,如果您查看他们的weightsRepo,您可以看到如果您只是从他们的Github进行拉取而不进行定制,那么75个层有一个截止点,因此它们的文件中似乎有75个层。在
值得注意的是,他们的论文发表于2018年4月,所以在那时候,他们可以在Github上为CNN添加更多层。在
根据AlexeyAB(非常流行的分叉黑暗版本的创造者)https://groups.google.com/forum/?nomobile=true#!topic/darknet/9WppEzRouMU
Yolo已经
75个cnn层(卷积层)+31个其他层(shortcut、route、upsample、yolo)=共106层。在
请记住,Yolo V3在3个不同的尺度上进行检测,这些尺度位于82,94106层。在
相关问题 更多 >
编程相关推荐