본문 바로가기
기타 정보

[PyTorch] tensor에 nan이나 inf있는지 확인하기

by 귤이두번 2024. 3. 21.

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()

입력해서 확인해보자

댓글