목록전체 글 (71)
영넌 개발로그
입출력 변수가 여러개인 경우가 있음 이를 고려하여 가변 길이 입출력을 처리할 수 있도록 코드 확장하기 순전파 변수들을 리스트에 넣어 처리 class Function: def __call__(self, inputs): xs = [x.data for x in inputs] ys = self.forward(xs) outputs = [Variable[as_array(y)) for y in ys] for output in outputs: output.set_creator(self) self.inputs = inputs self.outputs = outputs return outputs def forward(self, xs): raise NotImplementedError() def backward(self, gy..
파이썬 단위 테스트 표준 라이브러리 unittest 사용 unittest와 TestCase를 상속한 클래스를 구현하고 test 메소드 생성 테스트 케이스가 많아질수록 테스트 하는 함수의 신뢰도 상승 import unittest import deep def numerical_diff(f, x, eps=1e-4): x0 = deep.Variable(x.data - eps) x1 = deep.Variable(x.data + eps) y0 = f(x0) y1 = f(x1) return (y1.data - y0.data) / (2 * eps) class SquareTest(unittest.TestCase): def test_forward(self): x = deep.Variable(np.array(2.0)) y ..
개인 공부용 포스팅 1. square, exp 클래스를 함수화 함수를 파이썬 클래스로 정의하여 사용하다보니 인스턴스를 생성 후 호출하는 두 단계로 구분해 진행했어야 한다. 따라서 두 행동을 한번에 해주는 함수 생성 (square, exp) def square(x): return Square()(x) def exp(x): return Exp()(x) #-------------------------------------------------------------- #위 함수와 같은 의미 def square(x): f = Square() return f(x) #실행코드 x = Variable(np.array(0.5)) y = square(exp(square(x))) y.grad = np.array(1.0) y..