Pytorch로 시작하는 딥러닝 입문(04-04. 클래스로 파이토치 모델 구현하기)

2024. 2. 29. 17:52딥러닝 모델: 파이토치

파이토치의 대부분의 구현체들은 모델을 생성할 때 대부분 클래스를 사용한다. 앞서 배운 로지스틱 회귀를 클래스로 구현해보자. 

♣ 모델을 클래스로 구현하기

앞서 로지스틱 회귀 모델은 다음과 같이 구현했다. 

 

이를 클래스로 구현하면 다음과 같다. 

 

클래스 형태의 모델은 nn.Module을 상속받는다. __init__( )에서는 모델의 구조와 동작을 정의하는 생성자를 정의한다. 이는 파이썬에서 객체가 갖는 속성값을 초기화하는 역할로, 객체가 생성될 때 자동으로 호출된다. 

super( ) 함수를 부르면 여기서 만든 클래스는 nn.Module 클래스의 속성들을 가지고 초기화된다. 

forward( ) 함수는 모델이 학습데이터를 입력받아서 forward 연산을 진행시키는 함수이다. forward( ) 함수는 model 객체를 데이터와 함께 호출하면 자동으로 실행된다. 예를 들어 model 이라는 이름의 객체를 생성 후, model(입력 데이터)와 같은 형식으로 객체를 호출하면 자동으로 forward 연산이 수행된다. 

 

 

♣ 로지스틱 회귀를 클래스로 구현하기

1. 훈련 데이터를 텐서로 선언하기 

 

2. 클래스 정의하기

 

3. 모델과 옵티마이저 선언하기

 

 

4. 경사하강법을 사용하여 훈련하기