python - Numpy 数据大小是 Eigen Matrix 大小的两倍吗?
问题描述
我正在生成 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 数组的情况使同一矩阵的内存使用量加倍吗?
还是我在这里遗漏了什么?
解决方案
默认的 numpy dtype 是 float_,但令人困惑的是,这是一个 double [https://numpy.org/doc/stable/reference/arrays.scalars.html#numpy.float_]。
Eigen 数据类型中的 f 后缀表示 32 位传统浮点数,因此是 numpy 使用的 64 位双精度数的一半。
尝试
np.random.uniform(-1, 0.4, [5000000, 512], dtype=np.float32) 并进行比较。
推荐阅读
- merge - Puppet - 深度合并查找 default_value 并返回 hiera 哈希
- flask - 更改airflow.cfg 后导入身份验证后端失败
- java - After downloading a java file it would not open
- ansible - Ansible systemctl --user 另一个用户
- excel - 如何重新创建工作表并保持参考有效?
- javascript - 未知的编译器选项包括和排除
- install4j - install4j 构建过程中的自定义脚本
- android - 使用 REST API 时出现异常
- javascript - 检索 Pega 8.1 树导航流程中的错误元素
- java - Android:登录的后台进程