본문 바로가기

카테고리 없음

torch.numel() 과 len() 의 차이가 무엇일까?

 

torch.numel() 은 number of elements를 의미한다 

tensor의 element 개수를 카운트해서 반환한다 

python을 사용하는 사람들이라면 len()을 자주 사용하게 된다. 

 

그러면 torch.numel(), len() tensor에서 차이가 있을까? 

import torch


x1 = torch.tensor([1,2,3,4])
x2 = torch.randn(3,4)

#위의 두가지의 경우가 있는데 이때 출력되는 (numel() 과 len()은 차이가 있음)

print(len(x1))
print(torch.numel(x1))
## x1의 경우 모두 동일하게 나오게된다.

print(len(x2))
print(torch.numel(x2))
## 이 경우 len은 0 번째 행의 개수만 반환한다

 

tensor 의 shape에 따라서 결과가 다르게 나온다 

x1의 경우 1차원 이라, len(), torch.numel() 모두 동일하게 나오지만, 

x2의 경우 n 차원이라 len()은 0번째 차원을 카운트하여 반환하지만 , 

torch.numel(x2)는 tensor 전체의 elements의 개수를 반환한다. 

 

 

꼭 직접 눈으로 확인 해 볼 것을 말씀드리며 오늘도 안뇽~