float32和float64的本质区别

首先我们需要知道何为bits和bytes?

  1. bits:名为位数
  2. bytes:为字节
  3. 简单的数就是MB和G的关系!那么8bits=1bytes,下面是各个单位的相互转化!

 那么float32和float64有什么区别呢?

  1. 数位的区别
  2. 一个在内存中占分别32和64个bits,也就是4bytes或8bytes
  3. 数位越高浮点数的精度越高

它会影响深度学习计算效率?

float64占用的内存是float32的两倍,是float16的4倍;比如对于CIFAR10数据集,如果采用float64来表示,需要60000*32*32*3*8/1024**3=1.4G,光把数据集调入内存就需要1.4G;如果采用float32,只需要0.7G,如果采用float16,只需要0.35G左右;占用内存的多少,会对系统运行效率有严重影响;(因此数据集文件都是采用uint8来存在数据,保持文件最小)

猜你喜欢

转载自blog.csdn.net/m0_43432638/article/details/89973862