대표적인 딥러닝 프레임워크로는 텐서플로(TensorFlow), 케라스(Keras), 파이토치(Pytorch)가 있습니다.


파이토치는 클래스(Class)를 사용하도록 권고합니다. 크게 신경망의 동작을 정의하는 모듈 클래스와 데이터를 다루는 데이터셋 클래스가 있습니다.
1) 모듈 클래스를 이용해 신경망을 만듭니다.
2) 데이터셋 클래스를 이용해 데이터를 불러와 학습을 합니다
파이토치의 딥러닝 신경망은 모두 모듈(nn.Module 클래스)로 구성되어 있습니다.
파이토치 신경망의 기본 구성
class Net(nn.Module):
def __init__(self):
super().__init__()
# 신경망 구성요소를 정의합니다
def forward(self, input):
# 신경망의 동작을 정의합니다.
return output
__init__ 함수와 신경망의 동작을 정의하는 forward() 함수로 구성되어 있습니다. 파이토치는 미리 정의해둔 신경망 모듈을 제공합니다.데이터를 호출하는 데이터셋 클래스
class Dataset():
def __init__(self):
# 필요한 데이터 불러오기
def __len__(self):
# 데이터의 개수 반환
return len(data)
def __getitem__(self, i):
# i번째 입력 데이터와
# i번째 정답을 반환
return data[i], label[i]
데이터셋 클래스의 구성요소는 세 가지입니다.
__init__() : 학습에 사용할 데이터를 불러옵니다.__len__() : 데이터 개수를 반환합니다.__getitem__() : 우리가 지정한 i번쨰 입력 데이터와 정답을 반환합니다.모듈 클래스와 데이터셋 클래스를 이용한 딥러닝 학습을 진행하는 뼈대
# 데이터로더로부터 데이터와 정답을 받아옵니다.
for data, label in DataLoader():
# 1. 모델의 예측값 계산
prediction = model(data)
# 2. 손실 함수를 이용해 오차 계산
loss = LossFunction(prediction, label)
# 3. 오차 역전파
loss.backward()
# 4. 신경망 가중치 수정
optimizer.step()
1) 모델의 예측값을 계산
2) 손실 함수(loss function)를 이용해 신경망의 오차를 계산
3) 파이토치의 backward() 메서드를 이용해 오차를 역전파한 다음,
4) step() 메서드를 이용해 신경망의 가중치를 수정합니다.
1) 해결할 문제 정의 : 가장 먼저 해결할 문제를 정의합니다
ex) 이미지를 읽어들여 분류하기, 문장안에 비어 있는 단어를 알아맞추기 등
2) 데이터 수집 : 문제를 푸는 데 필요한 데이터를 수집합니다. 딥러닝은 데이터를 기반으로 학습이 이루어짐.

3) 데이터 가공 : 데이터를 수집하다 보면 정답이 잘못된 데이터, 혹은 문제 해결에 도움이 되지 않는 데이터 등이 섞이게 되며, 해당 데이터들은 학습에 악영향을 미치므로 데이터를 제거해줘야 합니다.

4) 딥러닝 모델 설계 : 해결할 문제에 알맞는 딥러닝 모델을 설계합니다.
5) 딥러닝 모델 학습 : 딥러닝 모델의 설계를 완료한 후 데이터를 딥러닝 모델의 입력으로 주면 예측이 올바른지 정답과 비교해가면 모델을 학습합니다.
6) 성능 평가 : 마지막으로 학습 때 이용하지 않은 데이터를 이용해서 학습이 완료된 모델의 성능을 평가합니다.
