diff --git a/imperative/python/megengine/module/module.py b/imperative/python/megengine/module/module.py index 717908de..9d3ea762 100644 --- a/imperative/python/megengine/module/module.py +++ b/imperative/python/megengine/module/module.py @@ -138,7 +138,11 @@ class Module(metaclass=ABCMeta): return HookHandler(self._forward_hooks, hook) def __call__(self, *inputs, **kwargs): - AutoNaming.push_scope(self.name if self.name is not None else self._short_name) + AutoNaming.push_scope( + self.name + if self.name is not None + else (self._short_name if hasattr(self, "_short_name") else self._name) + ) for hook in self._forward_pre_hooks.values(): modified_inputs = hook(self, inputs) if modified_inputs is not None: diff --git a/imperative/python/megengine/traced_module/utils.py b/imperative/python/megengine/traced_module/utils.py index 9a262c52..716b2bd5 100644 --- a/imperative/python/megengine/traced_module/utils.py +++ b/imperative/python/megengine/traced_module/utils.py @@ -222,7 +222,7 @@ class _ModuleList(Module, MutableSequence): def __setattr__(self, key, value): # clear mod name to avoid warning in Module's setattr if isinstance(value, Module): - value._name = None + value._short_name = None super().__setattr__(key, value) def __setitem__(self, idx: int, mod: Module): @@ -291,7 +291,7 @@ class _ModuleDict(Module, MutableMapping): def __setattr__(self, key, value): # clear mod name to avoid warning in Module's setattr if isinstance(value, Module): - value._name = None + value._short_name = None super().__setattr__(key, value) def __setitem__(self, key, value):