파이썬에서 tuple 변수를 cpu로 할당할 때 발생하는 에러로, 이때는 tuple이 아닌 tuple의 원소 하나하나를 cpu로 할당한 다음, 모든 값을 하나의 tuple로 다시 만들어주면 된다.
x = (torch.randn([1, 3, 128, 128]).cuda(),
torch.randn([1, 128, 128]).cuda(),
torch.randn([1, 128, 128]).cuda())
x.cuda() # error
x_cpu = tuple(t.cpu() for t in x)
print(y)
나는 cuda의 메모리 부족현상이 발생하여 모델의 결과를 다른 함수에서 사용할 때, 메모리를 반환해주기 위해 이를 cpu로 바꿔주는 과정에서 이러한 에러를 만나게 되었다.
이를 해결하기 위해 이러한 방법을 썼고 이 문제에 대해서는 잘 해결되었다.
cuda메모리 문제는 아직이지만...