tensorflow在训练时默认占用所有GPU的显存。可以通过以下方式解决该问题:
1. 显式设定需要分配的显存比例
config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.6
session = tf.Session(config=config, ...)
per_process_gpu_memory_fraction指定了每个GPU进程中使用显存的上限,但它只能均匀作用于所有GPU,无法对不同GPU设置不同的上限。
2. 按需求自适应增长
config = tf.ConfigProto()
config.gpu_options.allow_growth=True
sess = tf.Session(config=config)
当allow_growth设置为True时,分配器将不会指定所有的GPU内存,而是根据需求增长。
3. 指定GPU编号
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0"
或者在脚本或者命令行中指定
export CUDA_VISIBLE_DEVICES=0
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/162903.html