'内存不足' Matlab中的错误

时间:2015-04-19 13:49:50

标签: matlab neural-network

我知道这是一个非常常见的问题,但我尝试的所有解决方案都失败了。

基本上我想培养一个庞大的神经网络,并获得“记忆力不足”。错误。

我的训练集是729 x 3456双打矩阵,神经网络是所谓的自动编码器'这些尺寸的图层

3456 - 4000 - 2000 - 1000 - 300 - 1000 - 2000 - 4000 - 3456

在我的代码中,首先我做了

net = feedforwardnet([layer1, layer2, layer3, layer4, layer3, layer2, layer1], 'trainscg');
net = configure(net, Dtrain', Dtrain');

我使用' trainscg'函数,因为我读到它是使用较少内存的那个。 然后我根据一些值(我已经计算过)初始化权重和偏差,设置' transferFcn'并开始训练。

我尽可能地清理了工作区,我也尝试了

net.efficiency.memoryReduction = 4;
在训练之前,我读过它可以提供帮助。无论如何,即使我将值增加到60,我仍然会“内存不足”。

这是命令' memory'的输出,当工作空间仅包含训练集和四个数字(层的大小)时执行

>> memory
Maximum possible array:      4508 MB (4.727e+09 bytes) *
Memory available for all arrays:      4508 MB (4.727e+09 bytes) *
Memory used by MATLAB:      1927 MB (2.020e+09 bytes)
Physical Memory (RAM):      8080 MB (8.472e+09 bytes)

*  Limited by System Memory (physical + swap file) available.

我还能做些什么来解决问题?

1 个答案:

答案 0 :(得分:0)

您可以检查数据的数据类型以及该数据类型使用的内存。尝试使用内存要求最低的一个。例如:double占用8个字节,单个占用4个字节用于相同的数字。您可以使用 whos 命令检查内存使用情况。checking memory size of data in Matlab

此外,您可以在运行代码之前从任务管理器检查系统性能,如下图所示。可能是您系统上的其他一些进程占用了大部分内存并且可以停止。checking memory and CPU usage