С другой стороны, эти атрибуты доступны только для объекта (e
в вашем случае), но не для класса. Причина проста: это атрибуты, которые создаются в конструкторе, поэтому они не существуют в классе и создаются только при создании объекта.
Из реализации nn.Module
:
def __init__(self):
"""
Initializes internal Module state, shared by both nn.Module and ScriptModule.
"""
torch._C._log_api_usage_once("python.nn_module")
self.training = True
self._parameters = OrderedDict()
self._buffers = OrderedDict()
self._backward_hooks = OrderedDict()
self._forward_hooks = OrderedDict()
self._forward_pre_hooks = OrderedDict()
self._state_dict_hooks = OrderedDict()
self._load_state_dict_pre_hooks = OrderedDict()
self._modules = OrderedDict()
В этих атрибутах нет ничего особенного, они просто используются для отслеживания состояния каждого отдельного модуля.