인프런 커뮤니티 질문&답변

이용주님의 프로필 이미지
이용주

작성한 질문수

우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)

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

작성

·

547

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

이용주님의 프로필 이미지
이용주
질문자

안녕하세요

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

0

좋은사람님의 프로필 이미지
좋은사람
지식공유자

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

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

이용주님의 프로필 이미지
이용주

작성한 질문수

질문하기