基于Keras的YOLOV3源码实现疑问
 @wraps(Conv2D)
def DarknetConv2D(*args, **kwargs):
    """Wrapper to set Darknet parameters for Convolution2D."""
    darknet_conv_kwargs = {'kernel_regularizer': l2(5e-4)}
    darknet_conv_kwargs['padding'] = 'valid' if kwargs.get('strides')==(2,2) else 'same'
    darknet_conv_kwargs.update(kwargs)
    return Conv2D(*args, **darknet_conv_kwargs)

def DarknetConv2D_BN_Leaky(*args, **kwargs):#*用于参数前面,表示传入的(多个)参数将按照元组的形式存储;**用于参数前则表示传入的(多个)参数将按照字典的形式存储
    """Darknet Convolution2D followed by BatchNormalization and LeakyReLU."""
    no_bias_kwargs = {'use_bias': False}
    no_bias_kwargs.update(kwargs)
    return compose(
        DarknetConv2D(*args, **no_bias_kwargs),
        BatchNormalization(),#归一化
        LeakyReLU(alpha=0.1))#compose函数的作用:为嵌套函数  a = compose(b,c,d)   则a(1)=d(c(b(1)))

def resblock_body(x, num_filters, num_blocks):
    '''A series of resblocks starting with a downsampling Convolution2D'''
    # Darknet uses left and top padding instead of 'same' mode
    x = ZeroPadding2D(((1,0),(1,0)))(x)#???
    x = DarknetConv2D_BN_Leaky(num_filters, (3,3), strides=(2,2))(x)
    for i in range(num_blocks):
        y = compose(
                DarknetConv2D_BN_Leaky(num_filters//2, (1,1)),
                DarknetConv2D_BN_Leaky(num_filters, (3,3)))(x)
        x = Add()([x,y])
    return x
    1.请问这里wraps的功能以及意义是什么?
    2.源码中出现大量类似x = ZeroPadding2D(((1,0),(1,0)))(x)#???形式的语句,请问语句最后的(x)是什么意思?
    3. x = DarknetConv2D_BN_Leaky(num_filters, (3,3), strides=(2,2))(x)语句在调用DarknetConv2D_BN_Leaky函数时传入的参数哪一部分是*args,哪一步分是 **kwargs

1个回答

 wraps是python的装饰器的语法,表示执行这个方法的时候,需要先调用Conv2D,而Conv2D会再调用这个方法。
ZeroPadding2D就是用0填充你的矩阵。对于卷积神经网络,一般是用来填充图像的边缘
**kwargs是可变名参数,这里是strides,前面的是args
qq_33837208
qq_33837208 回复caozhy: 明白了,多谢
大约 2 年之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 ZeroPadding2D的返回值是一个函数,所以对它再调用x是参数
大约 2 年之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复qq_33837208: 当然是后面那一个函数,而不是后面所有的函数
大约 2 年之前 回复
qq_33837208
qq_33837208 请问您说的这个方法是指wraps后的第一个函数 还是之后的所有函数。另外第二个问题是zeropadding2D语句后面有个(x),不知道(x)在这里的含义是什么?
大约 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问