い哎哟喂〤 2018-08-22 06:20 采纳率: 25%
浏览 2698
已采纳

Python中装饰器@wraps

@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)

    程序中@wraps(Conv2D)在这里是什么意思,程序流程
  • 写回答

2条回答 默认 最新

  • threenewbee 2018-08-22 07:12
    关注

    python里的装饰器,装饰器是定义的一个函数,函数接受你原来的函数,并且返回一个新的函数,在这个过程中可以插入代码到原来函数前后或者改变函数的调用。
    DarknetConv2D是被修饰的函数,而Conv2D是用来修饰的函数,看函数名,这个应该是一个二维卷积函数,而它可以给你的DarknetConv2D设置调用参数。
    一个是设置核函数的正则项,采用l2正则,一个是padding,之前说了,这个是用来填补数据的边缘区域。再设置好之后,这些参数放入darknet_conv_kwargs传给Conv2D

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?