RuntimeError: result type Float can't be cast to the desired output type Long
·
Error Note
- 전체 에러 문구 RuntimeError: result type Float can't be cast to the desired output type Long ​ => output 텐서와 target 텐서의 데이터 타입이 같지 않을 때 발생하는 에러입니다. ​ - 해결 방법 저의 경우에는 output 텐서는 float32 타입, target 텐서는 int64 타입이었습니다. 두 텐서의 데이터 타입을 동일하게 맞춰주었습니다. 따라서, target텐서를 float 타입으로 변경해주었습니다. labels => labels.float() self.loss(logits, labels.view([-1,1]).float(), alpha=0.75, reduction='mean')
TypeError: can't convert cuda:0 device type tensor to numpy. Use Tensor.cpu() to copy the tensor,,,
·
Error Note
- 전체 에러 문구 TypeError: can't convert cuda:0 device type tensor to numpy. Use Tensor.cpu() to copy the tensor to host memory first. ​ GPU에 할당된 텐서를 numpy 배열로 변환할 때 발생하는 에러입니다. 텐서 x를 np.array(x)로 변환할 때 발생합니다. ​ ​ - 해결 방법 문제가 되는 텐서를 cpu()함수를 이용해 CPU 텐서로 변환해주면 됩니다. x = x.cpu() ## CPU로 변환 x = np.array(x) ## numpy로 변환
[Pytorch] RuntimeError: CUDA error: device-side assert triggered
·
Error Note
- 전체 에러 문구 RuntimeError: CUDA error: device-side assert triggered ​/pytorch/aten/src/ATen/native/cuda/Indexing.cu:699: indexSelectLargeIndex: block: [129,0,0], thread: [127,0,0] Assertion `srcIndex < srcSelectDimSize` failed. ​ ​ Pytorch의 nn.embedding() 레이어에 유효하지 않은 값(-1 이나 nan)이 입력으로 들어갔을 때 발생하는 에러입니다. 저의 경우에는 -1이 입력으로 들어가 발생하였습니다. ​ ​ - 해결 방법 유효한 입력값이 들어갈 수 있도록 수정해주었습니다. ​ 이외에도 아래의 경우에 에러가 발생할..
[Tensorflow] Invalid argument: Subshape must have computed start >= end since stride is negative,,,
·
Error Note
- 전체 에러 문구 Subshape must have computed start >= end since stride is negative, but is 0 and 2 (computed from start 0 and end 9223372036854775807 over shape with rank 2 and stride-1) ​ (확실하지는 않지만) ​Tensorflow에서 custom loss를 사용할 때 발생하는 오류로 생각됩니다.​ ​ ​ - 해결 방법 from tensorflow.python.framework.ops import disable_eager_execution disable_eager_execution() 위 코드를 추가하면 해결 가능합니다.