공부/TensorFlow

tf.transpose VS tf.reshape, tf.cast

njnjin 2023. 4. 7. 14:22

 

tf.transpose VS tf.reshape

 

transpose VS reshape

tf.transpose, tf.reshape는 둘 다 매트릭스의 행렬을 바꿔준다. 그렇다면 차이점이 뭘까?

 

 

전치행렬

차이점은 바로 transpose는 전치행렬을 해준다는 것이다. 전치행렬의 의미는 행과 열의 위치를 바꿔준 행렬을 만들어 준다는 것이다.

예시에서 A matrix의 1 행의 원소들은 (a,b,c), 2행의 원소들은 (d, e, f)이다 이와 같은 matrix을 전치행렬을 해주면

1행의 원소들은 1열로 2행의 원소들은 2열로 전치된다.

 

reshape메서드는 기존의 행렬을 주어진 shape에 따라 순서대로 행렬을 만들어준다.

shape = (6, )과 같이 하면 2차원의 행렬을 1차원의 행렬로 변경해줄 수도 있다.

 


tf.cast

 

tensor의 Type을 변환하고자 할때 사용하는 메서드이다.

tf.cast( tensor 변수명, 변환하고자 하는 자료형)으로 선언해 준다.

tf.cast 예시

int 자료형을 float 자료형으로 변환할 수도 있고 반대로도 가능하다.

float 자료형을 int 자료형으로 변환할 시 소수점 자릿수는 모두 버림하고 정수만 나타낸다.

또한 32비트를 사용하는 자료형을 16비트만 사용하는 자료형으로 변환시켜 줄 수 있다.

 


Mixed precision

https://www.tensorflow.org/guide/mixed_precision

 

혼합 정밀도  |  TensorFlow Core

혼합 정밀도 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 개요 혼합 정밀도는 훈련 중에 모델에서 16-bit 및 32-bit 부동 소수점 유형을 모두 사용하여 더 빠

www.tensorflow.org

 

32bit와 16bit를 이용한 실수 표현 방식을 둘 다 이용해 모델을 훈련시키는 Mixed Precision이 있다.

수치 정밀도를 높이기 위해 특정 부분에서는 32bit를 이용해 정확도와 같은 평가 정밀도를 높이고 나머지 부분은

16bit로 연산을 해서 계산 속도도 향상하고 메모리 사용도 줄일 수 있는 방법이다.

 

최근 딥러닝 가속기(Ai 연산장치)에는 16bit 연산을 빠르게 할 수 있는 하드웨어가 탑재되고 있다.

몇몇 컴퓨터는 아직 기술적인 이유로 적용되지 않지만 NVIDIA의 GPU와 TPU가 32 bit보다 16bit 실수 연산을 더 빠르게 수행할 수 있는 하드웨어가 탑재되어있다.

 

cast를 이용해 float32비트를 float16 비트로 줄이는 것과 연관이 있는 기술이어서 강의에서 소개해준 것 같다.