【问题标题】:Crashing RAM using memmap in Oja rule在 Oja 规则中使用 memmap 崩溃 RAM
【发布时间】: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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2018-01-28
    • 2022-01-10
    • 2020-08-07
    • 2019-12-20
    • 1970-01-01
    • 1970-01-01
    • 2020-08-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多