RuntimeError: Expected floating point type for target with class probabilities, got Long
νμ΅ κ³Όμ μμ loss = loss_fn(pred, label) μ½λλ₯Ό μ¬μ©νλλ°, predμ labelμ΄ floatμΌ μ€ μμλλ° longμ λ°μλ€λ μλ¬ λ¬Έκ΅¬λ€. μμ μλ loss ꡬνλ λΆλΆμμ λ°μ΄ν° νμ μ μ§μ ν΄μ€ μ μ΄ μλ κ² κ°μλ° μλ§ λ°μ΄ν°μ ν΄λμ€λ collate_fn ν¨μμμ μ€μ ν΄μ€¬λ λ―? μ΄λ²μλ μ λΆλΆμμ λ°μ΄ν° νμ μ λͺ μν΄μ€¬λ€.
β ν΄κ²° λ°©λ²
loss = loss_fn(torch.tensor(pred, dtype=torch.float16), torch.tensor(label, dtype=torch.float16))
RuntimeError: element 0 of tensors does not require grad and does not have a grad_fn
train_dataloader λλ©΄μ loss.backward()λ₯Ό μννλ κ³Όμ μμ λ§λ μλ¬λ€. μ§κΈκΉμ§ PyTorch μ½λ μ§λ©΄μ μ²μ λ³Έ μλ¬ λ‘κ·ΈλΌ μμΈμ΄ λμ§λ μμ§ νμ λͺ»ν¨!
β ν΄κ²° λ°©λ²
# loss.backward() μμ loss.requires_grad_ μΆκ°
loss.requires_grad_(True)
loss.backward()