【发布时间】:2019-02-28 19:07:46
【问题描述】:
我正在制作一个 3d 零数组,然后填充它。但是,由于 numpy 数组的大小,即使使用 64 gb ram,它也会遇到内存问题。我做错了吗?
X_train_one_hot 的形状为 (47827, 30, 20000),encInput 的形状为 (47827, 30, 200)
X_train_one_hot_shifted = np.zeros((X_train_one_hot.shape[0], 30, 20200))
#X_train_one_hot.shape[0] = 48000
for j in range(0, X_train_one_hot.shape[0]):
current = np.zeros((30, 20000))
current[0][0] = 1
current[1:] = X_train_one_hot[j][0:29]
# print(current.shape, encInput[i].shape)
combined = np.concatenate((current,encInput[j]), axis=1)
X_train_one_hot_shifted[j] = combined
有减少内存消耗的想法吗?另一个有趣的事情是因为 X_train_one_hot 的形状也几乎相同,但这不会引发任何错误。
编辑:程序在 for 循环中被终止并显示错误消息:
TERM_MEMLIMIT:作业在达到 LSF 内存使用限制后被终止。
此外,大多数数组都是稀疏的,因为 X_train_one_hot 是 20000 大小的 one_hot 编码
【问题讨论】:
-
您能否也分享确切的内存错误,以及在执行的哪个时间点您收到错误?我假设这是一个错误而不是崩溃。
-
@fountainhead - 我的错。应该添加它。由于内存不足,它崩溃了。我已经更新了详细信息