본문 바로가기

dev_AI_framework

layer 쌓기 add_layer 에서 가변 인수로의 확장 수행

add.layer 말고도 다른 방법의 구현

*args 로 가변 인수를 받아 레이어 쌓기

pytorch 의 경우 예시

    @overload
    def __init__(self, *args: Module) -> None:
        ...

    @overload
    def __init__(self, arg: 'OrderedDict[str, Module]') -> None:
        ...

    def __init__(self, *args):
        super().__init__()
        if len(args) == 1 and isinstance(args[0], OrderedDict):
            for key, module in args[0].items():
                self.add_module(key, module)
        else:
            for idx, module in enumerate(args):
                self.add_module(str(idx), module)

Sequential 클래스의 __init__ 메서드 

OrderedDict 형태와 OrderedDict 이 아닌 여러 개의 모듈들이 개별적으로 전달된 경우가 존재

모듈을 사용자가 지정한 이름으로 추가하는 것,