最近尝试采用matlab中的神经网络工具包做些试验,但是数据的规模比较大,在模型训练的过程中,总是返回“Out
Of
Memory”错误,而不能继续训练。尝试了几种可能的解决方案,最后总算解决,至少运行到现在还没有出现这种错误。
增加虚拟内存:在查看任务管理器发现物理内存为2GB,虚拟内存为共6GB,而观察matlab在运行过程中使用的内存没有超过2GB,因此不存在内存不足的问题。因此增加虚拟内存的方法是不可行的。
使用PACK:PACK可以将matlab中的变量导出到磁盘中,以增加可用内存。但是尝试之后,没有解决问题。
减少变量的内存开销:目前使用的变量都是必须的变量,不能再减小了。
64位架构:采用64位的软硬件架构,目前实验室条件下不可行。
3GB切换(3GB
switch):由于在windows上运行matlab时,如果内存的使用超过约1.7G左右就要出现这种错误,而无论你有多大的内存也没用。幸好现在
在Windows XP上,MATLAB现在支持3GB切换(3GB switch)启动选项(boot
option),配置额外的1GB的可寻址内存到每个程序上。这增加了你可以储存到MATLAB workspace中资料的总量约到2.7
GB。这相当于33亿的精度值。此新增的内存区块和MATLAB使用剩下的(内存)并不是连续的,所以你不能建立一个数组来填满此空间。
具体做法:修改C:\ Boot.ini文件如下:
[boot loader]
timeout=30
default&