更改 TensorFlow 中的默认 GPU

新手上路,请多包涵

根据文档,默认 GPU 是 ID 最低的那个:

如果您的系统中有多个 GPU,默认情况下将选择 ID 最小的 GPU。

是否可以从命令行或一行代码更改此默认值?

原文由 MBZ 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 464
2 个回答

Suever 的回答 正确地展示了如何将您的操作固定到特定的 GPU。但是,如果您在同一台机器上运行多个 TensorFlow 程序,建议您在启动进程之前设置 CUDA_VISIBLE_DEVICES 环境变量以公开不同的 GPU。否则,TensorFlow 将尝试在所有可用的 GPU 上分配几乎整个内存,这会阻止其他进程使用这些 GPU(即使当前进程没有使用它们)。

请注意,如果您使用 CUDA_VISIBLE_DEVICES ,设备名称 "/gpu:0""/gpu:1" 中的设备名称 0 等是指 1 当前进程中的 可见 设备等

原文由 mrry 发布,翻译遵循 CC BY-SA 3.0 许可协议

只是要清楚环境变量的使用 CUDA_VISIBLE_DEVICES

要仅在 GPU 1 上运行脚本 my_script.py ,您可以在 Linux 终端中使用以下命令:

 username@server:/scratch/coding/src$ CUDA_VISIBLE_DEVICES=1 python my_script.py

说明语法的 更多 示例:

 Environment Variable Syntax      Results
CUDA_VISIBLE_DEVICES=1           Only device 1 will be seen
CUDA_VISIBLE_DEVICES=0,1         Devices 0 and 1 will be visible
CUDA_VISIBLE_DEVICES="0,1"       Same as above, quotation marks are optional
CUDA_VISIBLE_DEVICES=0,2,3       Devices 0, 2, 3 will be visible; device 1 is masked
CUDA_VISIBLE_DEVICES=""          No GPU will be visible

供参考:

原文由 Franck Dernoncourt 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题