inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

처음하는 딥러닝과 파이토치(Pytorch) 부트캠프 (쉽게! 기본부터 챗GPT 핵심 트랜스포머까지) [데이터분석/과학 Part3]

MNIST 데이터 DNN 학습시키는 반복문 안에 minibatch 관련 질문

370

csg

작성한 질문수 1

0

       

# 질문 1.
  아래와 같이 model 안에 x_minibatch, y_minibatch를 넣고 학습을 시키는 과정인데
  결국 train_batches의 차원은 (375,128,1,28,28) # 48000/128=375
  x_minibatch 의 차원은 (128,1,28,28)
  여기서 model의 input의 차원은 (128,784) 가 맞을까요? 
  결국 한번 model 넣을 때마다 128개의 data가 학습되는 건가요? 
  DNNModel에는 input 차원이 (784,)인 1개의 데이터가 들어가서 output으로 (10,) 데이터를 
  출력한다고 알고있어서 조금 개념이 충돌하는 것 같습니다.

# 질문 2.
  train_batches의 type이 torch.utils.data 이라 shape을 알기 어려워 행렬 구조가 
  눈에 안들어오는데 따로 보는 방법이 있을까요? 


        model.train() # prep model for training
        for x_minibatch, y_minibatch in train_batches:
            y_minibatch_pred = model(x_minibatch.view(x_minibatch.size(0), -1))
            loss = loss_func(y_minibatch_pred, y_minibatch)

            optimizer.zero_grad()
            loss.backward()
            optimizer.step()
            train_loss += loss.item()
        
        train_loss = train_loss / len(train_batches)
        train_losses.append(train_loss)  

머신러닝 딥러닝 인공신경망 pytorch vision-transformer

답변 1

0

잔재미코딩 DaveLee

안녕하세요. 답변 도우미입니다. 문의하신 부분에 대해 다음과 같이 답변드려요~

질문 1:

네, 맞습니다. 한 번에 128개의 데이터가 학습되는 것입니다. x_minibatch의 차원이 (128, 1, 28, 28)인데, x_minibatch.view(x_minibatch.size(0), -1)를 사용하여 (128, 784)로 차원을 변경합니다. 이렇게 하면 각 이미지가 784차원 벡터로 펼쳐집니다. 따라서 DNNModel의 입력 차원은 (128, 784)입니다. DNNModel은 한 번에 128개의 이미지를 처리할 수 있도록 설계되어 있으며, 출력 차원도 (128, 10)이 됩니다.

질문 2:

train_batches는 DataLoader 객체이므로, 직접적으로 shape을 확인할 수 없습니다. 그러나 DataLoader 객체는 데이터셋과 배치 크기 등을 기반으로 만들어진 것이므로, 이를 사용하여 데이터셋의 크기와 구조를 확인할 수 있습니다.

먼저, 데이터셋의 길이를 확인하려면 len(train_batches.dataset)을 사용할 수 있어요.

데이터셋의 샘플 하나의 shape을 알고 싶다면, train_batches.dataset[0][0].shape를 사용하면 됩니다. 이 경우, [0][0]은 데이터셋의 첫 번째 샘플의 입력 데이터를 나타냅니다.

마지막으로 배치 크기를 확인하려면 train_batches.batch_size를 사용하면 됩니다. 이러한 정보들을 조합하면 DataLoader 객체에 포함된 데이터의 전체 구조를 파악할 수 있습니다.

이 예에서 train_batches의 차원은 (375, 128, 1, 28, 28)으로 계산한 것처럼 얻어집니다.

감사합니다~

0

csg

자세한 답변 감사합니다 !

import torch가 안되는 경우는 어떻게 하나요?

0

17

1

강의 필기는 어떻게 하나요?

0

85

1

섹션 5퀴즈 4번 문제 보기 오류로 보임

0

63

1

섹션17 81번이랑 82번 강의가 중복되는 것 같아서 질문드립니다.

0

88

2

강의교안이 안 옵니다

0

80

1

17-2강 Transfer learning 실습 관련 질문

0

134

2

13섹션 강의자료가 없네요^^

0

92

1

강의자료가 없네요.

0

107

2

LSTM 모델 학습 관련한 질문입니다.

0

127

1

MSE LOSS 관련

0

132

1

test시 minibatch 사용?

0

133

1

Average Test loss 계산식 문의

0

101

1

파이토치 설치

0

247

1

[Pytorch 기울기의 누적 곱? 누적 합?]

0

135

1

3d 텐서에서의 축 구분 질문

0

119

1

항상 tensor([0., 0., 0.]) 형식으로만 나오는 이유

0

111

1

강의자료 PDF 다운로드에 관하여

0

132

1

[실무에서 판다스 copy()메서드의 깊은복사 얕은복사 조정 소요가 생길까?]

0

116

1

섹션 다양한 Optimizer 정리하기 중 딥러닝으로 Regression 문제 적용해보기 (House Price Kaggle 문제) 강의에서 오류가 발생합니다.

0

149

1

마지막에 confusion matrix 작성할때

0

157

1

아나콘다를 사용하지 않고 파이토치 사용하는 방법

0

853

1

test data 의 loss 계산식 문의

0

288

1

차원 출력 관련 문의

0

245

1

섹션 7-4 당뇨병

0

388

3