gpt4 book ai didi

python - 我可以在 Keras 中逐步训练模型吗?

转载 作者:太空宇宙 更新时间:2023-11-04 05:06:45 25 4
gpt4 key购买 nike

我在 Keras 中有一个模型需要训练,但这个模型总是会耗尽我的 8GB 内存并卡住我的计算机。

我已经达到了仅训练一个样本(批量大小 = 1)的极限,但它仍然爆炸了。

Please assume my model has no mistakes or bugs and this question is not about "what is wrong with my model". (Yes, smaller models work ok with the same data, but aren't good enough for the task).

我如何将我的模型一分为二并分别训练每个部分,但在它们之间传播梯度?

有可能吗? (使用theano或tensorflow没有限制)

只使用 CPU,不使用 GPU。

最佳答案

你可以这样做,但它会导致你的训练时间接近只会使结果对后代有用的大小。

让我们考虑一下当我们以 1 的批量大小进行训练时我们的内存中有什么(假设您只将一个样本读入内存):

1) 样本

2) 模型的权重

3) 每层的激活#your model stores these for backpropogation

这些东西都不是训练所必需的。但是,理论上,您可以对模型的前半部分进行前向传递,将权重和激活转储到磁盘,加载模型的后半部分,对其进行前向传递,然后对其进行后向传递,转储将那些权重和激活写入磁盘,加载回前半部分的权重和激活,然后完成对它的反向传递。这个过程甚至可以进一步拆分,一次只做一层。

OTOH,这类似于交换空间的作用,您无需考虑它。如果你想要一个略微优化的版本(此时优化显然没有实际意义),你可以将交换空间增加到 500GB 并结束它。

关于python - 我可以在 Keras 中逐步训练模型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44233042/

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