[Tensorflow 2.0] 굳이 dtype float32 를 사용하는 이유

jaylnne·2022년 5월 6일
0

Tensorflow

목록 보기
1/1

❓ 의문

  • sample data 를 tensorflow 로 생성하다 보면 dtype 을 float32 로 지정하는 경우가 자주 보인다. 
  • float32 는 32 비트 숫자, float64 는 64 비트 숫자이다.
  • 때문에 float64 는 숫자를 더 정밀하게 표현할 수 있고, float32 보다 더 큰 수를 표현할 수도 있다.
  • 그런데 왜 굳이 dtype 을 float32 로 지정하는 걸까?
import tensorflow as tf

weights = tf.constant([1, 2, 3, 4, 5], dtype=tf.float32) # 왜 float32 ?

✅ 아하

  • float64 는 그만큼 더 많은 메모리를 필요로 하기 때문이다. (64는 32*2 이니 float32 의 약 두 배.)
  • 때문에 당연히 연산속도도 float32 보다 느리다.

👤: 그럼 무조건 float32 로 학습하는 게 좋은 건가요?

💁: NO. 당연히 놉. 아래 조건들을 기준으로 상황에 따라 판단하면 된다.

  • 숫자가 매우 정밀하게 계산되어야 하는 Task 인지?
  • 학습 시간이 오래 걸리더라도 조금이나마 더 정확한 계산을 원하는지? 아니면 학습 결과를 빠르게 확인해보고 싶은지?
  • 학습 서버에 얼마나 큰 용량의 메모리가 달려있는지? CPU 또는 GPU 성능이 어드 정도인지? (한마디로 얼마나 돈을 발랐는지...)

사소한 부분 같긴 하지만 문득 궁금해져서 정리해보았다. 😌

profile
스스로 정한 목표에 도달하기 위해 달리는 걸 즐기는 사람 🏃‍♀️

0개의 댓글