• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

클래스 함수 호출할 때 오류가 생깁니다

21.07.14 20:06 작성 조회수 382

0

부모 코드

class EfficientNet(nn.Module):
... 중략 
@classmethod
    def from_pretrained(cls, model_name, advprop=False, num_classes=1000, in_channels=3):
        model = cls.from_name(model_name, override_params={'num_classes': num_classes})
        load_pretrained_weights(model, model_name, load_fc=(num_classes == 1000), advprop=advprop)
        if in_channels != 3:
            Conv2d = get_same_padding_conv2d(image_size = model._global_params.image_size)
            out_channels = round_filters(32, model._global_params)
            model._conv_stem = Conv2d(in_channels, out_channels, kernel_size=3, stride=2, bias=False)
        return model

자식 코드

class EfficientNetModified(EfficientNet):
    # def __init__(self):
    #     super().__init__()

코드는 위와 같습니다

제가 자식 코드에 있는 EfficientNetModified 객체를 선언한 후 부모에 있는 (자식에서 상속 받아 수정하지 않음 X) from_pretrained 함수를 호출하는데, 호출이 되지 않다가 자식 코드에서 주석을 친 부분을 주석을 치니까 되는데, 어떠한 이유에서 그런 것인가요?

답변 2

·

답변을 작성해보세요.

0

이용주님의 프로필

이용주

질문자

2021.07.16

안녕하세요

저걸 지워야 실행이 잘 되는데, 즉, Super를 지워야 잘 실행이 됐습니다

0

상속받은 자식 클래스에서 부모클래스 초기화하는 부분을 실행해야 

전체 코드가 실행됩니다. super() 부분이구요!