해당 오류는 model과 입력이 되는 data의 type이 달라서 발생하는 오류이다.
해당 오류의 대부분은 model이나 data가 하나는 gpu에 하나는 cpu에 올라와 있는 상태로 연산할 때 발생한다.
따라서 다음과 같은 사항을 체크하여 오류를 해결한다.
1. model을 gpu에 정확히 올렸는지,
model = torch.load("...")
model.to("cuda")
2. dataset의 data와 target(label)을 gpu에 정확히 올렸는지,
for data, target in trainloader:
data, target = data.to(device), target.to(device)
#...
#training
#...
3. gpu를 사용하지 않을 경우, model이나 dataset의 data와 target을 gpu에서 정확히 내렸는지,
model = model.detach().cpu()
for data, target in trainloader:
data = data.detach().cpu()
target = target.detach().cpu()
'개발 > python' 카테고리의 다른 글
TypeError: can't convert cuda:0 device type tensor to numpy. Use Tensor.cpu() to copy the tensor to host memory first. 오류해결방법 (0) | 2023.06.23 |
---|---|
ModuleNotFoundError: No module named 'hydra' 오류 해결 (0) | 2022.10.04 |
[Jupyter Notebook] 주피터 노트북 폴더 옮기기 (0) | 2022.07.26 |
[Anaconda] 가상환경 실행오류 (CommandNotFoundError) (0) | 2022.02.11 |
[python] Python에서 JSON type 데이터 다루기 (0) | 2020.10.27 |