PaConvert icon indicating copy to clipboard operation
PaConvert copied to clipboard

got the wrong result when using paconvet

Open GreatV opened this issue 2 years ago • 3 comments

  • pytorch
import torch.nn as nn
from functools import partial


class test(nn.Module):
    def __init__(self, in_channels, out_channels, norm_func=nn.LayerNorm):
        super(test, self).__init__()
        self.norm = norm_func(in_channels)
        self.linear = nn.Linear(in_channels, out_channels)
    
    def forward(self, x):
        x = self.norm(x)
        x = self.linear(x)
        return x

if __name__ == "__main__":
    model = test(10, 10, partial(nn.LayerNorm, eps=0.2))
  • paddle
import paddle
from functools import partial


class test(paddle.nn.Layer):

    def __init__(self, in_channels, out_channels, norm_func=paddle.nn.LayerNorm
        ):
        super(test, self).__init__()
        self.norm = norm_func(in_channels)
        self.linear = paddle.nn.Linear(in_features=in_channels,
            out_features=out_channels)

    def forward(self, x):
        x = self.norm(x)
        x = self.linear(x)
        return x


if __name__ == '__main__':
    model = test(10, 10, partial(paddle.nn.LayerNorm, eps=0.2))

Traceback (most recent call last):
  File "/home/greatx/repos/PaConvert/paddle_project/test.py", line 21, in <module>
    model = test(10, 10, partial(paddle.nn.LayerNorm, eps=0.2))
  File "/home/greatx/repos/PaConvert/paddle_project/test.py", line 10, in __init__
    self.norm = norm_func(in_channels)
TypeError: LayerNorm.__init__() got an unexpected keyword argument 'eps'

eps should be converted to epsilon.

GreatV avatar Dec 03 '23 02:12 GreatV

@GreatV 你好,partial 形式的代码目前还不支持转换,这个可能后续会支持。另外再请问一下,这个case是具体实际模型中的用法case吗?

zhwesky2010 avatar Dec 05 '23 12:12 zhwesky2010

@zhwesky2010 有的, 例如 dino 里就有

  • https://github.com/PaddleJitLab/dino/blob/713030cd5a8ba8fbab9a51980c9f17318891adbb/vision_transformer.py#L239
  • https://github.com/RuijieJ/pren/blob/03d79e2477a9cbd2e9d0ea19d64458c4faea59f6/Nets/EfficientNet_utils.py#L89-L95

GreatV avatar Dec 05 '23 12:12 GreatV

@GreatV 收到,我们后续评估新功能需求。

zhwesky2010 avatar Dec 05 '23 12:12 zhwesky2010