개인 공부 공간/딥러닝
밑바닥부터 시작하는 딥러닝3 - STEP 10
Hoon Kang
2021. 3. 10. 23:09
파이썬 단위 테스트
전 단계 에서 구현한 역전파 과정이 오류 없이 돌아가는지 확인하기 위해 간단한 테스트를 진행하려고 한다. 테스트를 해야 실수(버그)를 예방할 수 있고 이를 자동화해야 소프트웨어의 품질을 유지할 수 있다. 파이썬으로 테스트를 진행할때는 표준 라이브러리에 포함된 unittest
를 사용하면 편하다.
import unittest
class SquareTest(unittest.TestCase):
def test_forward(self):
x = Variable(np.array(2.0))
y = square(x)
expected = np.array(4.0)
self.assertEqual(y.data, expected)
위의 함수를 이용하여 square
함수의 출력이 기댓값과 같은지에 대한 테스트를 진행할 수 있다. 위의 코드가 step/step10.py 파일에 있다고 가정했을 때 터미널에서 다음 명령을 실행하면 된다.
$ python -m unittest steps/step10.py
-m unittest
인수를 제공하면 파이썬 파일을 테스트 모드로 실행할 수 있다.
# step10.py
unittest.main()
실행 결과
..
---------------------------------------------------------------------------
Ran 1 tests in 0.00s
OK
위의 결과를 보면 테스트를 통과했음을 알 수 있다. 만약 문제가 있다면 'FAIL: test_forward (step10.SquareTest)' 와 같은 문장이 출력될 것이다.
위에서 구현한 SquareTest
외에도 다른 테스트들(역전파 과정, 기울기 확인)등을 구현해 추가적인 테스트도 진행이 가능하다.
출처: 사이토 고키, 『밑바닥부터 시작하는 딥러닝3』, 개앞맵시, 한빛미디어(2020)