페이지

2022년 8월 7일 일요일

6.2 Function클래스 추가 구현

 Function 클래스를 알아볼 차례입니다. 이전 단계까지 Function  클래스는 일반적인 계산을 하는 순전파(forward 메서드) 기능만 지원하는 상태입니다. 이외에 다음 두 기능을 추가하겠습니다.

- 미분을 계산하는 역전파(backward메서드)

- forward메서드 호출 시 건너받은 Variable 인스턴스 유지

class Function:
  def __call__(selfinput):
    x = input.data
    y = self.forward(x)
    output = Variable(y)
    self.input = input # 입력 변수를 기억(보관)한다.
    return output
  
  def forward(selfx):
    raise NotImplementedError()
  
  def backward(self, gy):
    raise NotImplementedError()


코드에서 보듯 __call__메서드에서 입력된 input을 인스턴스 변수인 self.input에 저장합니다. 이렇게 해서 나중에  backward 메서드에서 함수(Function)에 입력한 변수(Variable 인스턴스)가 필요할때 self.input에서 가져와 사용할 수 있습니다.

댓글 없음: