python-3.x - MemoryError : Unable to allocate 30. 4 GiB,用于具有形状(725000、277、76)和数据类型 float64 的数组

标签 python-3.x memory-management out-of-memory hdf5 k-fold

它给出了内存错误,但永远不会达到内存容量。我有 60 GB 的 SSH 内存,完整的数据集进程消耗 30
我正在尝试使用 k-fold 训练自动编码器。没有 k-fold 训练效果很好。原始数据集包含 hdf5 格式的 250,000 个数据。
如果我使用的总数据少于 100000,则使用 K-fold 它可以工作。
我已将其转换为 float32 但仍然无法正常工作。
我也试过 echo 1 但它会自动杀死 python 程序

最佳答案

考虑到您提供的数据集的维度( 725000 x 277 x 76 )及其数据类型(float64 - 8 字节),您似乎需要(至少)大约 114 GB 将数据集加载/存储在 RAM 中。
克服此限制的解决方案是:1) 通过 hyperslab 选择读取一定数量的数据集(例如,当时 1 GB 的块)并将其加载/存储在内存中,2) 对其进行处理,以及 3) 重复该过程(即转到步骤 1)直到数据集被完全处理。这样,您就不会耗尽 RAM 内存。

关于python-3.x - MemoryError : Unable to allocate 30. 4 GiB,用于具有形状(725000、277、76)和数据类型 float64 的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63932913/

相关文章:

python - Pandas 中的日期格式

c - 当我们 malloc() 时,我们真的必须 free() 吗?那么它与自动变量有什么不同呢?

visual-studio-2008 - 在 Release模式下 Internet Explorer 8 崩溃后,我需要调试我的 BrowserHelperObject (BHO)(在 C++ 中使用 Visual Studio 2008)

iphone - Objective-C 自定义二传手

c++ - 如何放大 'free memory'

java - 如何在 JVM 级别捕获 OutOfMemory 错误?

android - 在 Android 中解析 5MB JSON 响应时出现内存不足异常

python - 如何将字符串添加到文件中的奇数行?

python - Pandas 数据框按总和同时忽略非数值

python - 使用 python 解析输入的 csv 文件以获取输出的 sql 文件