【发布时间】:2016-01-24 23:41:45
【问题描述】:
我在大小为 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% 并且我的计算机停止响应。
【问题讨论】:
-
“内存崩溃”是什么意思?你的意思是 Python 核心转储?或者是其他东西?因为“内存崩溃”是无稽之谈。
-
另外,memmap 一开始可能会填满所有可用的 RAM 内存,所以这是正常的,它只是尽可能多地从 HDD 中读取。在你的情况下,我最好看看算法的进展,如果它有效的话。如果可能,您可以尝试使用稀疏矩阵。
-
问题出现在哪一行?
-
@ali_m
ojanet.train(memmap_train, epsilon=1e-3,epochs=10000).
标签: python numpy machine-learning numpy-memmap neupy