본문 바로가기

코딩 에러

RuntimeError: Input type (torch.FloatTensor) and weight type (torch.cuda.FloatTensor) should be the same 오류 해결

정상적인것 같은데 이런 메세지가 뜬다?

 

1. 일반적으로 검색하면 나오는 방법은

Variable(inputs.cuda()) 를 Variable(inputs.float().cuda()) 로 바꿔주기

 

2. .cuda() 붙이기

inputs, labels = data

inputs,labels = inputs.cuda(), labels.cuda() 로 cuda 설정하기

 

3. .to(device) 붙이기

inputs,labels = inputs.to(device), labels.to(device)

 

4. 내 경우

나 같은 경우에는 변수는 다 감싸주었는 데, 중요한 것은 모델을 안넣어주어서 문제가 생겼었다.

결국 둘 다 감싸주는 것이 포인트

 

use_gpu = torch.cuda.is_available()
if use_gpu == True :
model.to(torch.device('cuda'))
else :
model.to(torch.device('cpu'))

 

를 한 후에,  데이터 부분에서는

if use_gpu :
inputs = Variable(inputs.float().cuda())
else :
inputs = Variable(inputs.float())

 

를 써주었다.