gpt4 book ai didi

python - keras.backend.clear_session() 是删除进程中的 session 还是全局的?

转载 作者:太空宇宙 更新时间:2023-11-03 11:16:26 24 4
gpt4 key购买 nike

我在单独的脚本中创建了多达 100 个 keras 模型,并使用 model.save() 将它们保存在本地。为了训练它们,我使用 multiprocessing.pool。在这些过程中,我分别加载每个模型。由于发生内存错误,我使用了 keras.backend.clear_session()。这似乎可行,但我还读到它删除了模型的权重。

所以回到我的问题,如果我在池的每个进程中导入“from keras import backend as K”,最后,在保存模型后,我使用 K.clear_session(),我是否清除并行运行进程的重要数据还是该进程的数据?

如果它删除并行运行进程的重要数据。是否有可能在进程内创建本地 tensorflow session 。然后将需要的模型分配给这个 session ,然后 clear_session() 这个本地的?

感谢您提供的任何信息。

此外,如果有人知道 clear_session() 的确切功能,将会很有帮助。这个功能的解释不是很有信息量,尤其是对于像我这样的初学者。

谢谢你:)

最佳答案

我遇到过类似的问题,但我没有并行运行模型,而是我;e;任一模型(在不同的文件夹中但模型文件名相同)都将运行。

当我在没有 clear_session 的情况下直接运行模型时,它与之前加载的模型冲突,无法切换到其他模型。在语句(加载模型)的开头包含 clear_session 之后,它正在工作,但是它也删除了在程序开头声明的全局变量,这些变量是预测事件所必需的。

经验教训:clear_session 不仅会“销毁当前的 TF 图并创建一个新的”。如文档中所述,但也会删除程序中定义的全局变量。

所以我在 clear_session 语句之后定义了全局变量

** 感谢反馈

关于python - keras.backend.clear_session() 是删除进程中的 session 还是全局的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50823233/

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