0

可能重复:
matlab 错误“内存不足”

我正在尝试对 matlab 中接近 10000 * 300 * 100 的巨大张量进行张量分解。但是我存储张量的内存已经用完了,更不用说计算分解了。有没有办法让我在内存不足时指示 matlab 给我更多内存?

我有 4 GB 的 RAM。所以原则上应该可以获得 2.4 GB 的张量(假设张量的每个元素占用 8 个字节)。有没有办法做到这一点?

4

2 回答 2

0

(假设您确实需要一个这种大小的密集数组......)一种方法可能是使用并行计算工具箱(PCT)中的分布式数组。这使您可以将单个数组分布在多台机器的 RAM 中。您还需要与工作人员一样多的MATLAB 分布式计算服务器许可证。

并非所有函数都可用于分布式数组,但已实现大量核心算术和线性代数函数 -此处列出。

于 2012-10-10T07:32:14.927 回答
0

如果您没有足够的 RAM,您可以进行一些“核外”计算,在磁盘上分配数据。看看VVAR 文件交换项目。我没有使用它,但描述可能符合您的需要。创建的数组可以以正常的 matlab 方式使用,并在需要时无缝保存到 HDD。

于 2012-10-10T09:10:10.133 回答