Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
内存不足-默认的matlab数据库和代码_Matlab_Out Of Memory - Fatal编程技术网

内存不足-默认的matlab数据库和代码

内存不足-默认的matlab数据库和代码,matlab,out-of-memory,Matlab,Out Of Memory,我正在学习神经网络工具箱与matlab的例子,我有所有的时间误差 内存不足。为您的应用程序键入帮助记忆 选项。test2第10行中的错误xTest=zerosinputSize,numelxTestImages 这是我的简单代码 % Get the number of pixels in each image imageWidth = 28; imageHeight = 28; inputSize = imageWidth*imageHeight; % Load the test images

我正在学习神经网络工具箱与matlab的例子,我有所有的时间误差

内存不足。为您的应用程序键入帮助记忆 选项。test2第10行中的错误xTest=zerosinputSize,numelxTestImages

这是我的简单代码

% Get the number of pixels in each image
imageWidth = 28;
imageHeight = 28;
inputSize = imageWidth*imageHeight;

% Load the test images
[xTestImages, outputs] = digittest_dataset;

% Turn the test images into vectors and put them in a matrix
xTest = zeros(inputSize,numel(xTestImages));
for i = 1:numel(xTestImages)
    xTest(:,i) = xTestImages{i}(:);
end
代码是根据
但是我正在尝试做我自己的自定义网络。我重新安装了matlab,最大限度地利用java RAM存储,清理了一些磁盘空间,并删除了神经网络的其余部分。仍然不起作用。有没有办法解决这个问题?

如上所述,行:

xTest = zeros(inputSize,numel(xTestImages)); # xTestImages is 1x5000
将产生大小为28^2*5000=3920E6个元素的矩阵。每个元素都有一个双精度8字节,因此矩阵将消耗大约30mb

您声明,命令内存显示以下内容:

Maximum possible array: 29 MB (3.054e+07 bytes) 
* Memory available for all arrays: 467 MB (4.893e+08 bytes) 
** Memory used by MATLAB: 624 MB (6.547e+08 bytes) 
Physical Memory (RAM): 3067 MB (3.216e+09 bytes) 
因此,第一行显示了单个阵列的限制

因此,需要考虑以下几点:

我想全部清除或退出其他正在运行的应用程序并不能改善这种情况!? 您使用64位还是32位操作系统?和/或MATLAB 32/64位? 您是否尝试更改Java堆设置?
我知道这不会解决这个问题,但它可能会帮助您在此期间继续工作:您可以创建单精度的矩阵,这应该适用于您的测试用例。创建矩阵时,只需将single作为第二个选项传递

内存不足是由Levenberg–Marquardt算法创建的-当数据较大时,它会创建用于计算的巨大雅可比矩阵。

numelxTestImages的值是多少?@tim它来自digittest_数据集-默认的matlab数据库。xTestImages是单元格1x5000,表示xTest=zerosinputSize,numelxTestImages;将产生大小为28^2*5000=3920E6个元素的矩阵。每个元素都有一个双精度8字节,因此矩阵应该只消耗大约30mb。。。命令内存的输出显示了什么?最大可能数组:29 MB 3.054e+07字节*所有数组的可用内存:467 MB 4.893e+08字节**MATLAB使用的内存:624 MB 6.547e+08字节物理内存RAM:3067 MB 3.216e+09字节。看来还可以。30mb的好处:问题一定在另一个地方。我会发布一个答案,也许对你有帮助,如果是这样,请接受:-我退出所有申请。最大金额的Java堆大小的值。我刚开始使用1000个样品和它的工作。但当我尝试将其与神经网络结合使用时,即使是在10个样本上,我仍然会遇到内存不足的问题。Windows 7 32位上的Matlab2015SP1 32位。我担心这可能太低了:无论如何,对于这个问题,你的答案是好的。若我不能用我的神经网络解决这个问题,我就会创造一个新的话题。谢谢您: