python - MemoryError:无法分配形状为 (200, 20, 244, 244, 3) 且数据类型为 float64 的数组
问题描述
我试图从位于HERE的 Github 存储库中运行一个培训模块。我在云服务器上运行它,但我不知道为什么经过几轮之后,我得到了这个错误:
Traceback (most recent call last):
File "run.py", line 229, in <module>
classes=classes, use_augs=use_augs, fix_lens=fix_lens)
File "run.py", line 165, in hyper_tune_network
classes=classes)
File "run.py", line 111, in get_generators
classes=classes)
File "/home/code/DatasetBuilder.py", line 221, in get_sequences
X = pad_sequences(X, maxlen=seq_length, padding='pre', truncating='pre')
File "/usr/local/lib/python3.5/dist-packages/keras/preprocessing/sequence.py", line 61, in pad_sequences
x = (np.ones((num_samples, maxlen) + sample_shape) * value).astype(dtype)
File "/root/.local/lib/python3.5/site-packages/numpy/core/numeric.py", line 214, in ones
a = empty(shape, dtype, order)
MemoryError: Unable to allocate array with shape (200, 20, 244, 244, 3) and data type float64
第一,什么意思?有什么办法可以解决吗?解决方案是什么?
解决方案
它与 linux 如何处理 RAM 过度使用有关(我假设您正在运行 linux)。如果您要求太多,您的进程将被终止,或者您收到描述的错误。作为root,您可以尝试:
echo 1 > /proc/sys/vm/overcommit_memory
这将让您随心所欲地请求。如果你请求太多,你仍然会得到一个内存不足的错误,但这会让你使用更大的数组。
推荐阅读
- bash - “预期操作数(错误标记为“#”)- 在 for 循环中使用哈希数组时出错
- php - 在 wordpress 中的类别存档页面中添加侧边栏
- sql - 在 SQL 中求和
- uri - 跨浏览器文件 URI 的 3 或 5 个斜杠
- python - 如何通过检查它是否与给定模式匹配来对 python 列表进行排序?
- android - ConstraintLayout 中的全景 ImageView
- python - 无法为 python 2.4.3 安装 pip?
- ios - Firebase 动态链接
- module - 如何修复 CMake Fortran 模块依赖性?
- java - 在 Java 8+ 中对地图进行分区