qq_33837208 2018-08-07 08:14 采纳率: 25%
浏览 4905
已采纳

基于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条回答 默认 最新

  • threenewbee 2018-08-07 08:49
    关注
     wraps是python的装饰器的语法,表示执行这个方法的时候,需要先调用Conv2D,而Conv2D会再调用这个方法。
    ZeroPadding2D就是用0填充你的矩阵。对于卷积神经网络,一般是用来填充图像的边缘
    **kwargs是可变名参数,这里是strides,前面的是args
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程