Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何防止在Python代码中使用特定的GPU_Python_Tensorflow_Pycharm - Fatal编程技术网

如何防止在Python代码中使用特定的GPU

如何防止在Python代码中使用特定的GPU,python,tensorflow,pycharm,Python,Tensorflow,Pycharm,我的问题与相同,但它没有解决我的问题 我的电脑中有4个GPU,我想在GPU 0上运行代码,但每当我运行tensorflow代码时,我的代码总是只在GPU 2上运行。在阅读这些(,)解决方案和信息时,我试图通过添加以下内容来解决我的问题: os.environ['CUDA\u VISIBLE\u DEVICES']=“0”在python代码中 或CUDA\u可见\u设备作为PyCharm项目配置设置中的环境变量 此外,我还在代码或环境变量中添加CUDA\u LAUNCH\u BLOCKING=2

我的问题与相同,但它没有解决我的问题

我的电脑中有4个GPU,我想在GPU 0上运行代码,但每当我运行tensorflow代码时,我的代码总是只在GPU 2上运行。在阅读这些(,)解决方案和信息时,我试图通过添加以下内容来解决我的问题:

  • os.environ['CUDA\u VISIBLE\u DEVICES']=“0”
    在python代码中
  • CUDA\u可见\u设备
    作为PyCharm项目配置设置中的环境变量
  • 此外,我还在代码或环境变量中添加
    CUDA\u LAUNCH\u BLOCKING=2
    ,以阻止GPU 2。这是阻止任何GPU的正确方法吗
以上解决方案对我不起作用。代码始终在GPU 2上运行。我通过观看nvidia smi查看了它。 我的系统环境是

  • Ubuntu 16.04
  • RTX2080Ti(全部4个GPU)
  • 驱动程序版本418.74
  • CUDA 9.0和CuDNN 7.5
  • Tensorflow gpu 1.9.0

对这个问题有什么建议吗?在PyCharm或python代码的项目设置中添加环境变量。。。仍然只有GPU 2可见。当我移除CUDA可视设备时,tensorflow会检测到所有4个GPU,但代码只在GPU 2上运行。

我在tensorflow 2.0.0中尝试了这一点

physical_devices = tf.config.experimental.list_physical_devices('GPU')

tf.config.experimental.set_visible_devices(physical_devices[0], 'GPU')

logical_devices = tf.config.experimental.list_logical_devices('GPU')

这将使u r代码在GPU索引0中运行

u可以检查这一点,NVIDIA_VISIBLE_DEVICES=$GPU_id CUDA_VISIBLE_DEVICES=0将GPU id设置为GPU所需的0、1、2或3。您的建议在TF2.0中运行良好,但在TF1.9中不起作用,我认为在2.0中某些功能发生了更改。通过检查这些链接,我试图在TF1.9中获得相同的可能性。和要使用某些GPU,有一种最简单的方法在中定义了
MirroredStrategy()
,但它也不起作用。您可以尝试MultiWorkerMirroredStrategy吗?我在tf2.0中也尝试过这种方法