再深度学习中,数据量往往很大,所以在保障数据精度的同时还要考虑计算效率,虽然float64比float32有更高的精度,但一个在内存中占分别64和32个bits,也就是4bytes或8bytes.
具体来讲,float64占用的内存是float32的两倍,是float16的4倍;比如对于CIFAR10数据集,如果采用float64来表示,需要60000323238/1024**3=1.4G,光把数据集调入内存就需要1.4G;如果采用float32,只需要0.7G,如果采用float16,只需要0.35G左右;占用内存的多少,会对系统运行效率有严重影响;(因此数据集文件都是采用uint8来存在数据,保持文件最小)