我正在尝试使用 SOM 来学习 80000X10 个样本(每个样本都是一个大小为 10 的向量)。但我什至不能用 10000X1 样本配置 8x8 网络。它抛出“内存不足”错误。
这是我的代码(数据是 80000X10 矩阵):
net=selforgmap([8 8])
net=configure(net,data(1:10000,1))
Matlab 帮助:“未配置的网络在第一次调用 train 时会自动配置和初始化。”
即使是 8000X1 的数据集,也需要很多时间。我注意到一个巨大numWeightElements: 512000
的net
变量(8 * 8 * 8000 = 512000)。重量应为 8*8。SOM 训练算法不应该使用这么多内存。怎么了?
内存命令的输出:
>> memory
Maximum possible array: 3014 MB (3.160e+009 bytes)
Memory available for all arrays: 3014 MB (3.160e+009 bytes)
Memory used by MATLAB: 1154 MB (1.210e+009 bytes)
Physical Memory (RAM): 4040 MB (4.236e+009 bytes)