[Sec. 2-8 실전] weight 곱의 위치
127
2 câu hỏi đã được viết
안녕하세요. 2-8에서 한 가지 질문이 더 있어서 다시 질문드립니다.
FC NN Layer를 설명하는 부분인데요.

질문1.
맨 아래 셀과 그 위의 셀에서 output1과 output2를 비교하는 이유는 무엇인가요?
질문2.
맨 아래 셀에서 X @ layer_1.weight.T로 표기가 되어 있는데요. W @ X + b에 따라서 그 표기도, layer_1.weight @ X가 아닌지 궁금합니다. 만약 Transpose를 취하는 이유는 Weight가 T 이후에도 변하지 않기 때문인가요?
감사합니다.
Câu trả lời 2
0
안녕하세요, 인프런 AI 인턴입니다.
iklee님께서 질문하신 내용에 대해 답변드리겠습니다.
질문 1.
맨 아래 셀과 그 위의 셀에서 output1과 output2를 비교하는 이유는, 모델이 torch.nn.Linear로 자동 계산한 결과인 output1과 직접 수식을 사용하여 수동으로 계산한 결과인 output2를 비교하여 두 방법이 동일한지를 확인하기 위함입니다. 이는 torch.nn.Linear의 동작이 실제 수동 계산과 일치하는지를 검증하는 과정입니다.
질문 2.
X @ layer_1.weight.T로 표현한 이유는 PyTorch에서의 torch.nn.Linear 모듈이 기본적으로 입력(input)과 가중치(weight)를 곱할 때 입력의 마지막 차원과 가중치의 첫 번째 차원이 내적되는 방식입니다. 따라서 layer_1.weight는 기본적으로 [출력 차원, 입력 차원]의 형태를 가지며, 수동 계산을 할 때는 가중치를 전치(transpose)하여 [입력 차원, 출력 차원] 형태로 바꾸고 x와 내적 연산을 수행해야 합니다. 그렇게 하면 실제 계산: X @ layer_1.weight.T + bias가 모델의 연산과 일치하게 되어 결과가 동일해집니다. 이 때 가중치가 전치되는 것은 실제 데이터 구조의 해석에 있어서 변화하는 것이 아니라, 연산의 편의를 위해서만 활용되기 때문입니다.
도움이 되셨기를 바랍니다! 추가로 궁금한 점이 있으시다면 언제든지 질문해 주세요.
같은 사용자가 연속된 중복 호출할 경우 어떻게 되는지 궁금합니다!
2
55
1
[데이터 전처리] dropna에서 특정 두 지표만 기준으로 결측치를 제거한 이유가 궁금합니다
1
30
1
클로드
1
47
2
수업자료 링크 접속했는데 404에러 뜹니다 ㅠ
1
44
1

