-
카테고리
-
세부 분야
딥러닝 · 머신러닝
-
해결 여부
미해결
model 선언할떄 .to(device) 하는 이유가 궁금해요
22.11.15 01:47 작성 조회수 3.72k
1
model = VanillaRNN(input ~~~, device = device).to(device) 에서
괄호 안에 디바이스를 gpu로 선언해줬는데
밖에 to(device)를 하는 이유가 궁금해요
그리고 out.shape[0]은 출력값인거 알겠는데
원래 out은 형태가 어떻게 생겼는지 궁금해요
답변을 작성해보세요.
0
딥러닝호형
지식공유자2022.11.15
안녕하세요.
텐서 연산 시에 모든 텐서가 동일한 operation(전부 cpu나 전부 gpu)을 사용해야 합니다.
따라서 밖에 .to(device)는 모델 파라메터에 대해 gpu을 사용할 수 있도록 하는 것이고 내부에 넣은 .to(device)는 모델 파라메터가 아닌 h0를 gpu용 텐서를 만드려는 용도입니다.
(h0은 모델 파라메터가 아니므로 밖에 .to(device)에 영향을 받지 않습니다.)
h0 = torch.zeros(self.num_layers, x.size()[0], self.hidden_size).to(self.device)
그리고 out의 형태가 궁금하시면 바로 윗줄에 print(out.shape)를 넣어서 확인하시면 되요!
감사합니다.
답변 1