본문 바로가기

파이토치

(4)
파이토치 합성곱 신경망(CNN) (2) 4. 데이터 증강(Data Augmentation)■ CNN을 포함한 딥러닝 모델은 이미지 특징을 학습하는 것이 주목적이며, 복잡한 문제를 해결하기 위해 층(layer)이 깊어진다.■ 어느 정도 층이 깊어지면 표현력이 향상되고 일반화 성능도 보장되는데, 층이 깊어질수록 신경망 모델은 수십, 수백만 개의 파라미터를 갖게 된다.■ 수많은 파라미터를 가진 심층 신경망 모델이 좋은 성능을 발휘하기 위해서는 그만큼 많은 데이터를 이용한 훈련이 필요하며, 이를 위한 방법으로 데이터 증강이 활용된다.■ 현실 세계 (이미지) 데이터는 보는 각도와 밝기에 따라 전혀 다른 픽셀 값들을 가지고 있으며, 온전한 형태가 아닌 겹치거나 가려져 있을 수 있는데, 데이터 증강으로 이런 현실 세계를 모두 담을 수 없는 데이터 세트의 ..
파이토치 합성곱 신경망(CNN) (1) 1. nn.Module을 이용해 모델 생성■ 합성곱 신경망은 이미지에 대한 특징을 추출(학습)한 다음, 추론을 위해 평탄화한 후 출력층에 데이터를 넣게 된다.■ CNN에는  합성곱(Conv) 계층과 풀링(Pooling) 계층이 존재한다. '합성곱 계층 - 활성화 함수 계층 - (풀링 계층)' 흐름으로 연결되며, 풀링 계층을 생략하기도 한다.합성곱 신경망(CNN) (1) 합성곱 신경망(CNN) (1)1. 합성곱 신경망(Convolutional Neural Network, CNN)■ 합성곱 신경망CNN은 컨브넷(convnet)이라고도 부르며 이미지 인식, 음성 등 다양한 곳에 사용된다. 특히 이미지 인식 분야에서 활용도가 높다.■ 인접hyeon-jae.tistory.com■ 파이토치는 예를 들어 데이터가 2..
torch.nn (2) 5. Dropout■ 파이토치에서 드롭아웃은 torch.nn.functional에서 dropout 함수로 다음과 같이 사용할 수 있다.class Net(nn.Module): def __init__(self): super(Net, self).__init__() self.fc1 = nn.Linear(28 * 28, 512) self.fc2 = nn.Linear(512, 256) self.fc3 = nn.Linear(256, 10) self.dropout_prob = 0.5 # 몇 퍼센트 드롭아웃할 것인지 def forward(self, x): x = x.view(-1, 28*28) x = self..
torch.nn (1) torch.nn — PyTorch 2.5 documentation torch.nn — PyTorch 2.5 documentationShortcutspytorch.org 1. Linear Layershttps://pytorch.org/docs/stable/generated/torch.nn.Linear.html Linear — PyTorch 2.5 documentationShortcutspytorch.org■ torch.nn.Linear는 어파인(Affine) 계층으로 \( y = w \cdot x + b \)를 계산한다.   x @ weights + bias의 계산을 nn.Linear가 수행하는 것이다.m = nn.Linear(20, 30)m```#결과#```Linear(in_features=20, out..