작성
·
4.8K
1
model = VanillaRNN(input ~~~, device = device).to(device) 에서
괄호 안에 디바이스를 gpu로 선언해줬는데
밖에 to(device)를 하는 이유가 궁금해요
그리고 out.shape[0]은 출력값인거 알겠는데
원래 out은 형태가 어떻게 생겼는지 궁금해요
답변 1
0
안녕하세요.
텐서 연산 시에 모든 텐서가 동일한 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)를 넣어서 확인하시면 되요!
감사합니다.