pytorch
-
[이거 어떡하지] Expected target size (, ), got torch.Size([, ]) (nn.CrossEntropyLoss 에서)Pytorch 2021. 6. 18. 22:23
증상: ValueError: Expected target size(256, 84), got torch.Size([256, 64]) image classification이나 language model을 학습시키는 과정에서 nn.CrossEntropyLoss 를 사용하실 때 위와 같은 에러가 발생할 때가 있습니다. (특히 language model처럼 batch 한 샘플마다 sequence별로 classification을 해야 하는 경우) sequence sample별로 output으로 num_classes만큼의 dimension이 뽑히게 냈는데 dimension이 안맞으면 에러가 발생할 수 있습니다. language model의 경우에는 입력으로 [batch_size, len_input] 의 shape를 ..
-
[이거 어떡하지] optim in step: expected device cpu but got device cuda:0Pytorch 2021. 6. 11. 23:08
증상: optim.step() - RuntimeError: expected device cpu but got device cuda:0 1. pytorch에서 코딩하는데 난 model도 cuda에 올렸고 (Model().cuda() 혹은 Model().to(device)를 사용) 2. torch.load({CHECKPOINT_PATH})로 optimzer의 state를 불러왔는데 아래와 같이 optimizer의 step()에서 이러한 증상이 나타납니다. 왜 그럴까요? 해결 방법: 1] optim_state = torch.load({CHECKPOINT_PATH})["optimizer"] 2] optim.load_state_dict(optim_state) 3] for state in optim.state.va..
-
[이거 어떡하지] RuntimeError: CUDA error: CUBLAS_STATUS_ALLOC_FAILED when calling cublasCreate(hand≤)원인 및 해결법(pytorch)Pytorch 2021. 6. 5. 03:02
pytorch로 딥러닝 모델을 설계후 학습을 진행하다보면 RuntimeError: CUDA error: CUBLAS_STATUS_ALLOC_FAILED when calling cublasCreate(hand≤) 라는 메시지가 발생할 때가 있습니다. CUDA 관련된 문제로는 속썩을 만한 타이밍이 아닐때 해당 코드를 보게 되어 난처하실 경우가 많을 것입니다. 원인 및 해결책: GPU로 학습하는 환경에서 설계하신 모델에 torch.nn.Embedding()이 포함되어 있으실 것입니다. torch.nn.Embedding(num_input, output_dimension) num_input이 입력하는 token의 종류 수가 될 것인데 예를 들어 num_input이 128인경우 입력으로 0~127까지의 int..