在Oja规则中使用memmap崩溃RAM

时间:2015-10-25 23:13:10

标签: python numpy machine-learning numpy-memmap neupy

我正在使用大小为400x156300的数据集的oja规则。它似乎崩溃了我的RAM。我不确定是什么原因造成的。请帮忙。 我有12 GB的RAM。 尝试使用memmap但仍然崩溃!!

#convert memmap and reduce precision
[num_sample,num_feat]=train_data.shape
filename = path.join(mkdtemp(), 'train_data.dat')
memmap_train = np.memmap(filename, dtype='float32', mode='w+', shape=(num_sample,num_feat))
memmap_train[:] = train_data[:]
del train_data,test_data

#apply oja's rule
ojanet = algorithms.Oja(minimized_data_size=1250,step=1e-10,verbose=True,show_epoch=1)
ojanet.train(memmap_train, epsilon=1e-3,epochs=10000)
red_train_data = ojanet.predict(memmap_train)
ojanet.plot_errors(logx=False)
pdb.set_trace()

此外,提出了问题:https://github.com/itdxer/neupy/issues/27。不知道包开发是否有效。

通过崩溃RAM我的意思是RAM%利用率超过100%并且我的计算机停止响应。

1 个答案:

答案 0 :(得分:0)

这个问题与Oja算法的低效内存使用有关。它修复了NeuPy版本0.1.4。您可以在此处找到已关闭的机票:https://github.com/itdxer/neupy/issues/27