pytorch torch.nn.Identity()
torch.nn.Identity()
今天看源码时,遇到的这个恒等函数,就如同名字那样
占位符,并没有实际操作
源码:
class Identity(Module):
r"""A placeholder identity operator that is argument-insensitive.
Args:
args: any argument (unused)
kwargs: any keyword argument (unused)
Examples::
>>> m = nn.Identity(54, unused_argument1=0.1, unused_argument2=False)
>>> input = torch.randn(128, 20)
>>> output = m(input)
>>> print(output.size())
torch.Size([128, 20])
"""
def __init__(self, *args, **kwargs):
super(Identity, self).__init__()
def forward(self, input: Tensor) -> Tensor:
return input
主要使用场景:
不区分参数的占位符标识运算符
- if 某个操作 else Identity()
- 在增减网络过程中,可以使得整个网络层数据不变,便于迁移权重数据