我对yolov3的架构感到非常困惑,我已经阅读了有关它的文档和论文。有些人说它有103个卷积层,而其他人则说它只有53个卷积层。但是,当你在下载后查看.cfg文件中的卷积层时,大约只有75个!...这里错过了什么?我该怎么做来找到它?这个问题对我们很重要,因为我们需要在论文中引用这个架构,我们需要知道层的确切大小...
我对yolov3的架构感到非常困惑,我已经阅读了有关它的文档和论文。有些人说它有103个卷积层,而其他人则说它只有53个卷积层。但是,当你在下载后查看.cfg文件中的卷积层时,大约只有75个!...这里错过了什么?我该怎么做来找到它?这个问题对我们很重要,因为我们需要在论文中引用这个架构,我们需要知道层的确切大小...
在这种情况下,模型中可能有可变数量的层。在论文中,它说Darknet53有53层。但是在他们的train.py文件中,根据您使用的Darknet模型,他们对层数进行了截断。具体来说:
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
YOLO v3总共有107个层,你还应该计算快捷层、路由层、上采样层和YOLO层(总共32个)。因此,总共有75+32=107个层。当你在快捷层或路由层中看到索引时,你会发现我们是从0开始计数的。因此,YOLO层位于82、94、106层。