我正在用生成numpy数组
p_desct = np.random.uniform(-1, 0.4, [5000000, 512])
内存大小几乎为~20G
特征矩阵(C++(中的相同数据:
Eigen::MatrixXf x_im = Eigen::MatrixXf::Random(5000000,512);
内存大小~9,6G
这种情况下numpy数组的内存使用量是同一矩阵的两倍吗?
还是我这里遗漏了什么?
dtype = np.float32
。
另请参阅https://numpy.org/doc/stable/user/basics.types.html对于所有numpy数组数据类型
默认的numpy dtype是float_,但令人困惑的是,这是一个双精度[https://numpy.org/doc/stable/reference/arrays.scalars.html#numpy.float_]。
Eigen数据类型中的f后缀表示32位传统浮点,因此是numpy使用的64位双精度的一半大小。
尝试
np.随机.均匀(-1,0.4,[5000000512],dtype=np.foat32(并进行比较。