首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在tensorflow中释放GPU内存?( `allow_growth`→`allow_shrink`?)

如何在tensorflow中释放GPU内存?( `allow_growth`→`allow_shrink`?)
EN

Stack Overflow用户
提问于 2022-10-25 07:24:28
回答 1查看 59关注 0票数 1

我用GPU训练了很多模型。我想调优网络的架构,所以我对不同的模型进行了顺序的训练,以比较它们的性能(我使用的是keras-tuner)。

问题是有些模型非常小,而另一些则非常大。我不想把所有的GPU内存分配给我的培训,而只是我需要的数量。我有TF_FORCE_GPU_ALLOW_GROWTHtrue,这意味着当一个模型需要大量内存时,GPU就会分配它。然而,一旦大模型已经训练,内存将不会释放,即使下一个训练是小模型。

有没有办法强迫GPU释放未使用的内存?有点像TF_FORCE_GPU_ALLOW_SHRINK

也许自动收缩可能很难实现。如果是这样的话,我会很高兴有一个手动发布,我可以添加一个回调,以便在每次培训后运行。

EN

回答 1

Stack Overflow用户

发布于 2022-11-16 12:31:39

您可以尝试使用以下代码限制GPU内存的增长:

代码语言:javascript
运行
复制
import tensorflow as tf
gpus = tf.config.experimental.list_physical_devices('GPU')
tf.config.experimental.set_memory_growth(gpus[0], True)

第二种方法是使用tf.config.set_logical_device_configuration配置虚拟GPU设备,并对总内存设置硬限制,以便将其分配给GPU。

有关更多细节,请查看此链接

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74190403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档