PyTorch Lightning은 PyTorch를 위한 고수준 인터페이스를 제공하는 오픈 소스 Python 라이브러리
아래는 라이트닝을 위한 스냅샷
파이토치 라이트닝에 대해 설명한 내용이다.
이 기술을 사용하는 이유는
"PyTorch Lightning은 복잡한 네트워크 코딩을 간단하게 만들어 준다"
라고 설명하고 있다.
추가로 "순수 PyTorch로 구축되어 있어 새로운 언어를 배울 필요가 없다."
이 부분이 사람들이 많이 사용하는 이유인 것 같다.
그 밑에 보라색으로 적힌 것들은 간단하게 만들어주게 하기 위한 방식들이다.
여태 배웠던 것 중 로깅, 비쥬얼제이션, 얼리스탑, 모델 체킹포인트 등 직접 해봤던 방식들도 있다.
단순히 고수준이고 사용하기 쉬운 라이브러리일 뿐만 아니라,
훨씬 더 많은 장점을 제공한다.
최신 모델을 손쉽게 구성할 수 있는 모듈식 접근 방식을 제공하여,
Python 코딩보다는 딥러닝 모델을 만드는 데 더 집중할 수 있게 해주는데,
이는 연구자들이 모델 배포나 훈련 확장에 대해 걱정하지 않고
연구에 더 집중할 수 있게 해준다.
지금은 얘가 어떤애인지 간단하게 확인하기 위함으로 어떻게 다른지만 보자.
모델 정의, 훈련 루프, 검증 루프, 테스트 루프, 최적화의 구성으로 Lightning의 최소 예시이다.
PyTorch에서는 에폭을 호출하고 배치를 처리해야 했지만, Lightning에서는 훈련 단계와 검증 단계를 함수로 정의할 수 있다.
함수로 묶어서 간단하게 표현된다.
여기는 확실히 간단
이렇게 PyTorch와 PyTorch Lightning에 대해 봤는데,
코드만 비교했을때는 이해하는것은 어려우므로 실습해보자.