jupyter中的Tensorflow集CUDA_VISIBLE_DEVICES
python
tensorflow
5
0

我有两个GPU,想同时通过ipynb运行两个不同的网络,但是第一个笔记本始终分配两个GPU。

使用CUDA_VISIBLE_DEVICES,我可以隐藏python文件的设备,但是我不确定如何在笔记本中这样做。

无论如何,是否会将不同的GPU隐藏在同一服务器上运行的笔记本电脑中?

参考资料:
Stack Overflow
收藏
评论
共 2 个回答
高赞 时间 活跃

您可以通过使用魔术来更快地完成此过程而无需任何导入:

%env CUDA_DEVICE_ORDER=PCI_BUS_ID
%env CUDA_VISIBLE_DEVICES=0

请注意,所有env变量都是字符串,因此无需使用" 。您可以通过运行以下命令来验证是否已设置env-variable: %env <name_of_var> 。或使用%env检查所有这些变量。

收藏
评论

您可以使用os.environ在笔记本中设置环境变量。在初始化TensorFlow以便将TensorFlow限制为第一个GPU之前,请执行以下操作。

import os
os.environ["CUDA_DEVICE_ORDER"]="PCI_BUS_ID"   # see issue #152
os.environ["CUDA_VISIBLE_DEVICES"]="0"

您可以再次检查您是否拥有对TF可见的正确设备

from tensorflow.python.client import device_lib
print device_lib.list_local_devices()

我倾向于从实用程序模块(例如notebook_util)使用它

import notebook_util
notebook_util.pick_gpu_lowest_memory()
import tensorflow as tf
收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号