diff --git a/imperative/python/megengine/traced_module/traced_module.py b/imperative/python/megengine/traced_module/traced_module.py index 0f156d18b509ebaf6f81b10e55f1bd1a75cfb2bb..6cbf9ebb2efbdfb6efed347eaf42b045defec894 100644 --- a/imperative/python/megengine/traced_module/traced_module.py +++ b/imperative/python/megengine/traced_module/traced_module.py @@ -2474,6 +2474,12 @@ def trace_module( if hasattr(mod, "argspec") else inspect.getfullargspec(mod.forward) ) + if isinstance(forward_argspec, inspect.FullArgSpec): + argspec_dict = forward_argspec._asdict() + # check defaults + tree_flatten((forward_argspec.defaults, forward_argspec.kwonlydefaults)) + argspec_dict["annotations"] = {} + forward_argspec = inspect.FullArgSpec(**argspec_dict) args, kwargs = _convert_kwargs_to_args(forward_argspec, args, kwargs, True) inputs, _ = tree_flatten((args, kwargs)) for _, i in enumerate(inputs):