Function 클래스를 알아볼 차례입니다. 이전 단계까지 Function 클래스는 일반적인 계산을 하는 순전파(forward 메서드) 기능만 지원하는 상태입니다. 이외에 다음 두 기능을 추가하겠습니다.
- 미분을 계산하는 역전파(backward메서드)
- forward메서드 호출 시 건너받은 Variable 인스턴스 유지
class Function:
def __call__(self, input):
x = input.data
y = self.forward(x)
output = Variable(y)
self.input = input # 입력 변수를 기억(보관)한다.
return output
def forward(self, x):
raise NotImplementedError()
def backward(self, gy):
raise NotImplementedError()
코드에서 보듯 __call__메서드에서 입력된 input을 인스턴스 변수인 self.input에 저장합니다. 이렇게 해서 나중에 backward 메서드에서 함수(Function)에 입력한 변수(Variable 인스턴스)가 필요할때 self.input에서 가져와 사용할 수 있습니다.
댓글 없음:
댓글 쓰기