❓ 의문
- 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)
✅ 아하
- float64 는 그만큼 더 많은 메모리를 필요로 하기 때문이다. (64는 32*2 이니 float32 의 약 두 배.)
- 때문에 당연히 연산속도도 float32 보다 느리다.
👤: 그럼 무조건 float32 로 학습하는 게 좋은 건가요?
💁: NO. 당연히 놉. 아래 조건들을 기준으로 상황에 따라 판단하면 된다.
- 숫자가 매우 정밀하게 계산되어야 하는 Task 인지?
- 학습 시간이 오래 걸리더라도 조금이나마 더 정확한 계산을 원하는지? 아니면 학습 결과를 빠르게 확인해보고 싶은지?
- 학습 서버에 얼마나 큰 용량의 메모리가 달려있는지? CPU 또는 GPU 성능이 어드 정도인지? (한마디로 얼마나 돈을 발랐는지...)
사소한 부분 같긴 하지만 문득 궁금해져서 정리해보았다. 😌