본문 바로가기

pytorch

(4)
PyTorch 학습 모델 저장 및 불러오기 딥러닝 학습이 이루어진 모델의 파라미터를 저장하고, 다시 이를 불러와서 학습 모델에 입력하는 방법은 다음의 코드를 통해 이행할 수 있다. 다만 주의 해야할 점은, 학습 파라미터를 저장하고 불러올 때, 해당 변수가 GPU상에 존재하는지 아니면 CPU상에 존재하는지를 유념해두고 저장 및 불러오기 절차를 거쳐야한다. 딥러닝을 학습할때는 대부분 GPU가 있다는 전제하에서 진행되나, CPU로만 진행될 수도 있으므로 이부분을 꼭 기억하자!!! (P.S. pickle_protocol=4 는 Python 버전 3.4 이후에서부터 구현된 기능으로 큰 객체를 효율적으로 저장하게해줌.)
다중 분류를 위한 Logistic Regression Model 만들기 앞서 포스팅 된 Logistic Regression 모델은 두 가지 Class에 대한 이진 분류를 수행하는것이다. 하지만 3개 이상의 Class 즉, 다중 분류를 위한 Logistic Regression은 어떻게 만들 수 있을까? 선형 결합 계층의 출력을 Class의 숫자만큼 설정하고, 손실함수로 Crossentropy에 Softmax가 추된 형태인 CrossEntropyLoss()를 이용한다. 아래의 코드와 같이 사용하면 손쉽게 다중분류문제도 해결해 볼 수 있다.
Logistic Regression 구현해보기 PyTorch 내장 모듈 및 Iris 공개 데이터셋을 이용하여, 다음과 같이 Logistic Regression Model을 구현하였다.
PyTorch 패키지 구성 PyTorch의 기본적인 패키지 구성은 다음과 같음. 01. 'torch' : 고차원 연산에 가장 기본이 되는 텐서와 같은 수학적 함수들이 내재되어 있음. 02. 'torch.nn' : 인공신경망을 설계하기 위해 필요한 레이어, 아키텍쳐 혹은 손실함수 등이 저장되어 있으며, 딥러닝에 관련된 개발을 진행할 시에 항상 호출되는 패키지임. 03. 'torch.autograd' : 미분가능 함수를 정의할 때 사용되는 기본 함수 및 자동미분을 위한 콘택스트 매니저(enable grad)가 포함되어 있음. 04. 'torch.optim' : 학습의 최적화를 위한 여러가지 방법들이 함수화 되어 있는 패키지임. 05. 'torch.onnx' : Open Neural Network Exchange (ONNX)형식으로 신..