pytorch의 dtype과 function

seung·2024년 8월 5일

pytorch

목록 보기
2/10

pytorch에서의 dtype

  1. 정수형 데이터 타입
    8비트,16비트,32비트,64비트로 나누어지며, 부호가 있는것과 없는것으로도 나눌 수 있다. 부호를 사용하면 앞에 1비트를 사용해야 함으로 부호없는것 보다 1비트 더 작은 숫자까지 표현할 수 있다.
    ex)
    dtype=torch.unit8(부호 없는 8비트)
    dtype=torch.short(부호 있는 16비트)
    dtype=torch.int32(부호 있는 32비트)
    dtype=torch.long(부호 있는 64비트)
    a = torch.tensor(1, dtype=torch.int32)

** 만약 부호없는 타입으로 지정후 -1를 넣으면 255(8비트 기준)으로 바뀌어서 나온다.

  1. 실수형 데이터 타입
    32비트 부동 소수점 수와 64비트 부동 소수점 수 등으로 구분하고 이 타입들은 신경망의 계산에 사용된다.(중요!!!)

부동이라는 것을 알기 위해서 고정과 부동의 차이를 보면된다.
정수 실수값의 default dtype은 정수는 int64, 실수는 float32이다.

부동 vs 고정

16비트 고정 소수점이면
예를 들어 102.5를 생각해보자

만약 102.005는 어떻게 저장해?? 이렇듯 고정을 쓰먼 소수부 자리마다 따로 저장해야되는 불편함이 있어(메모리 오지게 쓰겠지!!)

그래서 부동소수점이 등장함(숫자를 정규화 하여 소수를 가수부와 지수부로 나누어서 표시함) 고정보다 더 다양한 소수들을 표현할 수 있다.
ex)32비트 부동 소수점
torch.tensor(dtype=torch.float32)

ex)64비트 부동 소수점
torch.tensor(dtype=torch.double)


type 캐스팅

파이토치에서 한 데이터 타입을 다른 데이터 타입으로 변환하는 것을 의미한다.
ex) a=torch.tensor([1,2],dtype=torch.int8)
b=a.float()---32비트 부동 소수로 변환
c=a.double()---64비트 부동 소수로 변환


tensor의 기초 함수(function)

  • 텐서의 기초통계를 알고 싶을때 쓰는 함수
    min(),max(),sum(),std(),mean(),std(),var(),prod() 등등
    ex) i=torch.tensor([1,2,3])
    torch.min(i),torch.std(i)
  • 텐서의 특성을 확인하는 method
    차원 -> dim()
    크기,모양 -> size,shape ** 이건 속성이라서 괄호가 필요없음
    텐서 요소의 총 개수 -> numel()

0개의 댓글