gpt4 book ai didi

python-3.x - 尝试训练模型时出现 "Kernel appears to have died"错误。是不是太大了?可能是什么问题?

转载 作者:行者123 更新时间:2023-12-04 17:40:25 24 4
gpt4 key购买 nike

这里对这个问题的其他解决方案都没有对我有用。

我正在尝试在具有 15,000GB 内存的 amazon Sagemaker 实例 ml.c4.8xlarge 上的 Jupiter 笔记本上训练模型。但是,当我运行火车时,这个错误不断出现。模型如下:

model = Sequential()
model.add(Embedding(vocab_size, 200, input_length=max_length))
model.add(GRU(units=400, dropout=0.2, recurrent_dropout=0.2))
model.add(Dense(800, activation='sigmoid'))
model.add(Dense(400, activation='sigmoid'))
model.add(Dense(200, activation='sigmoid'))
model.add(Dense(100, activation='sigmoid'))
model.add(Dense(50, activation='sigmoid'))
model.add(Dense(20, activation='sigmoid'))
model.add(Dense(10, activation='sigmoid'))
model.add(Dense(5, activation='sigmoid'))
model.add(Dense(1, activation='sigmoid'))

总结如下:
enter image description here

模型太大了吗?我没有足够的空间来运行它还是可能是其他问题?

最佳答案

如果您有一个仅使用 CPU 的主机,那么您不仅应该考虑模型的大小,还应该考虑 Jupyter 笔记本中数据和所有变量所占用的 RAM 量。您可能知道,所有这些变量都保留在这里,直到内核重新启动。

例如,如果您像这样加载数据集:

data = load_train_data(path)
index = np.arange(len(data))
trn_idx, val_idx = train_test_split(index, test_size=0.2)
# here we making a copy
trn_df, val_df = data.loc[trn_idx], data.loc[val_idx]

然后所有这些变量在你的 RAM 中占据一些空间。您可以尝试使用 del 释放一些内存和显式垃圾收集器调用。
import gc
del data
gc.collect()

这个例子是虚构的,但我想你已经明白了。此外,您可以尝试使用 free 来监控您的内存使用情况。命令。
$ watch -n 0.1 free -mh

然后你可以调试你的笔记本,看看内存何时超出限制。一般来说,拥有庞大的数据集并制作(可能是无意的)数据副本很容易占用数十 GB 的 RAM。

即使您的机器上安装了 GPU,数据也应该先加载到 RAM 中,然后才能进入 GPU 内存。所以我们总是需要跟踪仍然可用的内存量。

您也可以查看 this package这有助于自动化垃圾收集过程。 AFAIK,该软件包支持 pytorch仅但在开发时考虑了其他后端。也许您可以根据自己的需要调整这个包背后的想法。

关于python-3.x - 尝试训练模型时出现 "Kernel appears to have died"错误。是不是太大了?可能是什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54769559/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com