본문 바로가기
728x90
반응형

pytorch17

[Pytorch] cross entropy loss 에 3차원 input 사용하기 분류기를 통과한 후 나온 현재 tensor의 구조는 다음과 같습니다. (batch_size, max_len, num_classes) 이를 아래와 같은 순서로 변경해주어야 합니다. (batch_size, num_classes, max_len) 참고 사이트에 따르면 두번째 자리에 항상 클래스 수가 와야 합니다. ​ 참고: https://stackoverflow.com/questions/63648735/pytorch-crossentropy-loss-with-3d-input Pytorch crossentropy loss with 3d input I have a network which outputs a 3D tensor of size (batch_size, max_len, num_classes). My grou.. 2023. 2. 5.
[Pytorch] RuntimeError: CUDA error: device-side assert triggered - 전체 에러 문구 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이 입력으로 들어가 발생하였습니다. ​ ​ - 해결 방법 유효한 입력값이 들어갈 수 있도록 수정해주었습니다. ​ 이외에도 아래의 경우에 에러가 발생할.. 2023. 1. 29.
[Pytorch] RuntimeError: element 0 of tensors does not require grad and does not have a grad_fn - 전체 에러 문구 RuntimeError: element 0 of tensors does not require grad and does not have a grad_fn ​ ​ - 해결 방법 requires_grad 함수가 False 값을 가진 채 backward 함수를 실행하면 발생하는 오류입니다. backward()함수를 통해 역전파를 실행하기 위해 네트워크의 뒤로 갔는데 gradient를 저장해 둔 공간이 없기 때문에 에러가 발생한다고 할 수 있습니다. import torch import torch.nn as nn loss = nn.CrossEntropyLoss() input = torch.FloatTensor([[-1.4922, -0.1335, 0.2527, 0.0334, 0.0705], [-0.. 2023. 1. 29.
[Pytorch] RuntimeError: Expected object of scalar type Long but got scalar type Float for argument # - 전체 에러 문구 RuntimeError: Expected object of scalar type Long but got scalar type Float for argument #2 ​ cross entropy loss를 사용할 때 발생하는 에러입니다. target(정답 라벨) 자리에 잘못된 데이터 타입이 왔을 때 발생합니다. ​ ​ ​ - 해결 방법 기존의 F.cross_entropy(logits, targets)를 아래처럼 변경해주면 됩니다. F.cross_entropy(logits, targets.to(device='cuda', dtype=torch.int64)) 2023. 1. 29.
728x90
반응형