기타 정보
[PyTorch] tensor에 nan이나 inf있는지 확인하기
귤이두번
2024. 3. 21. 12:12
Tensor에 NaN (Not a Number) 또는 Inf (Infinity) 값이 포함되어 있는지 확인하는법!
1. torch.isnan()와 torch.isinf() 함수 사용하기: 이 함수들은 각각 Tensor 내의 값이 NaN이나 Inf인지를 검사하여 같은 크기의 boolean Tensor로 반환한다.
2. torch.any() 함수와 결합하기: torch.isnan() 또는 torch.isinf()의 결과에 torch.any() 함수를 적용하면 Tensor 전체에 걸쳐 적어도 하나의 NaN이나 Inf 값이 있는지 여부를 알 수 있다.
import torch
# 예제 Tensor 생성
x = torch.tensor([1.0, 2.0, float('nan'), float('inf'), 5.0])
# NaN 체크
has_nan = torch.isnan(x).any()
print(f"Tensor has NaN: {has_nan}")
# Inf 체크
has_inf = torch.isinf(x).any()
print(f"Tensor has Inf: {has_inf}")
VSCode에서 디버깅한다고 생각하면 그냥 DEBUG CONSOLE에
# x라는 텐서 체크시
# NaN 체크
torch.isnan(x).any()
# Inf 체크
torch.isinf(x).any()
입력해서 확인해보자