inflearn logo
강의

Course

Instructor

Deep Learning and PyTorch Bootcamp for Beginners (Easy! From Basics to ChatGPT's Core Transformer) [Data Analysis/Science Part 3]

Applying the Activation Functions learned so far to deep learning code

차원 출력 관련 문의

242

hyeoncheolkim0765

7 asked

0

주피터 노트북 "06_1_DNN_PYTORCH" 자료에서 등록된 parameter 의 차원을 출력해보면 최초 출력되는 파라미터가 최초 등록한 nn.Linear(input_dim, 10) // (4, 10) 이면 (4, 10) 이 출력되어야 할 것 같은데 왜 (10, 4) 가 출력될까요?

 

x = torch.ones(4) # input tensor

y = torch.zeros(3) # expected output

input_dim = x.size(0)

output_dim = y.size(0)

model = nn.Sequential (

nn.Linear(input_dim, 10),

nn.LeakyReLU(0.1),

nn.Linear(10, 10),

nn.LeakyReLU(0.1),

nn.Linear(10, 10),

nn.LeakyReLU(0.1),

nn.Linear(10, output_dim)

)

 

loss_function = nn.MSELoss()

learning_rate = 0.01

nb_epochs = 1000

optimizer = torch.optim.SGD(model.parameters(), lr=learning_rate)

for epoch in range(nb_epochs + 1):

y_pred = model(x)

loss = loss_function(y_pred, y)

optimizer.zero_grad()

loss.backward()

optimizer.step()

print(loss)

for param in model.parameters():

print (param)

print(param.shape)

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

Answer 1

0

funcoding

안녕하세요. 답변 도우미입니다.

PyTorch에서 nn.Linear 모듈을 사용할 때 주의해야 할 중요한 점은 파라미터의 차원이 어떻게 표현되는지입니다. PyTorch의 nn.Linear 모듈은 내부적으로 가중치(weight) 행렬을 저장할 때 전치(transpose)된 형태로 저장합니다. 즉, nn.Linear(input_dim, output_dim)을 사용할 경우 내부적으로 가중치 행렬의 크기는 (output_dim, input_dim)으로 저장됩니다.

예를 들어, nn.Linear(4, 10)은 내부적으로 가중치 행렬을 (10, 4)의 형태로 가지고 있습니다. 이는 PyTorch가 선형 계층을 계산할 때 입력 벡터 \( x \)를 오른쪽에서 곱하기 때문에 \( Wx + b \)의 형태로 계산되도록 설정되어 있기 때문입니다. 여기서 \( W \)는 가중치 행렬이며, \( b \)는 편향(bias)입니다.

따라서 nn.Linear(input_dim, 10)의 파라미터를 출력했을 때 (4, 10)이 아니라 (10, 4)로 출력되는 것이 정상적인 동작입니다. 이는 PyTorch의 구현 상세(detail)에 따른 것으로, 이러한 방식은 다른 프레임워크에서도 비슷하게 볼 수 있습니다.

감사합니다.

잔재미코딩 드림.

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

0

82

1

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

0

62

1

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

0

87

2

강의교안이 안 옵니다

0

78

1

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

0

134

2

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

0

91

1

강의자료가 없네요.

0

103

2

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

0

127

1

MSE LOSS 관련

0

129

1

test시 minibatch 사용?

0

133

1

Average Test loss 계산식 문의

0

101

1

파이토치 설치

0

244

1

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

0

131

1

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

0

118

1

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

0

110

1

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

0

130

1

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

0

116

1

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

0

148

1

마지막에 confusion matrix 작성할때

0

157

1

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

0

849

1

test data 의 loss 계산식 문의

0

285

1

섹션 7-4 당뇨병

0

383

3

BackPropagation 질문입니다

0

372

1

RMSProp 관련 질문입니다.

0

173

1