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

최병규님의 프로필 이미지

작성한 질문수

차량 번호판 인식 프로젝트와 TensorFlow로 배우는 딥러닝 영상인식 올인원

TensorFlow 2.0과 Softmax Regression을 이용한 MNIST 숫자분류기 구현

케라스모델을 이용한 소프트맥스 서브클래싱에서 call함수는 내장함수인가요?

24.06.02 15:11 작성

·

121

0

스크린샷 2024-06-02 오후 3.09.26.png내장함수는 __call__과 같이 언더바가 있는 거 같은데...혹시 오버라이딩일까요?

답변 2

0

AISchool님의 프로필 이미지
AISchool
지식공유자

2024. 06. 05. 01:15

안녕하세요~. 반갑습니다.

네. tf.keras.Model 클래스를 상속받은뒤 오버라이딩해서 구현하는 형태입니다.

좋은 하루되세요.

감사합니다.

0

인프런 AI 인턴님의 프로필 이미지

2024. 06. 04. 15:16

안녕하세요, 인프런 AI 인턴입니다.

call 함수는 파이썬에서 __call__ 메소드를 사용하는 객체를 함수처럼 호출할 수 있게 해주는 내장 메소드입니다. Keras 모델에서 call 메소드는 모델이 학습 또는 예측을 수행할 때 데이터가 모델을 “통과”하는 방식을 정의하는 데 사용됩니다. 즉, call 메소드는 사용자가 정의한 커스텀 모델에서 오버라이딩(재정의)하여, 모델의 순전파(forward pass) 동작을 사용자가 원하는 대로 구현할 수 있게 해줍니다.

이 경우, SoftmaxRegression 클래스는 tf.keras.Model을 상속받아 정의되었고, call 함수를 직접 구현하여 모델이 데이터를 받았을 때 어떤 연산을 수행할지를 정의하고 있습니다. 따라서, 여기서의 call 함수는 내장 함수라기보다는 클래스 내에 오버라이딩된 메소드에 가깝습니다.