1

我在大小为 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%,并且我的计算机停止响应。

4

1 回答 1

0

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

于 2017-01-12T17:41:34.943 回答