函数的用法及作用"/>
Python中partial函数的用法及作用
先贴一篇大佬的讲解,很清晰易懂:
彻底明白 Python partial() - Demon的文章 - 知乎
精华版讲解:
partial函数用作 “冻结” 某些函数的参数或者关键字参数,同时会生成一个带有新标签的对象(即返回一个新的函数)。所谓“冻结”,即使得原函数中的某些参数固定不变。
partial来进行参数的绑定,返回一个参数缩减的特化版本, 即冻结了原函数中部分参数,返回一个新的函数
那么,冻结参数有啥用呢?
答:当原函数需要被多次调用,并且调用时函数中部分参数是固定不变的,那么我们就可以把这部分参数冻结,以便调用。
本文主要目的是结合实际应用,讲一下partial函数的用法。
举例:
需要多次调用的类如下所示:
class LayerNorm(nn.Module):def __init__(self, normalized_shape, eps=1e-6, data_format="channels_last"):super().__init__()# 后面省略...
使用partial后:
norm_layer = partial(LayerNorm, eps=1e-6, data_format="channels_first")
分析上述代码:原类为LayerNorm,其中参数有3个(normalized_shape, eps, data_format)。我们使用partial函数进行冻结之后得到了新类norm_layer,新类即指定了参数的LayerNorm类,可以认为是LayerNorm类的简化版本。
后续使用norm_layer类时,便只需要指定一个参数即可:norm_layer(64)
等价于:LayerNorm(normalized_shape=64, eps=1e-6, data_format="channels_last")
更多推荐
Python中partial函数的用法及作用
发布评论