Python 当TensorFlow程序运行时,如何更改TensorFlow程序可能使用的GPU?

Python 当TensorFlow程序运行时,如何更改TensorFlow程序可能使用的GPU?,python,tensorflow,gpu,Python,Tensorflow,Gpu,可以使用环境变量指定在TensorFlow程序启动之前TensorFlow可以使用哪些GPU,例如CUDA\u VISIBLE\u DEVICES=1 python my\u script.py 如何更改TensorFlow程序运行时可能使用的GPU 我知道可以将程序更改为具有检查点,然后使用CUDA\u VISIBLE\u设备从这些检查点重新运行TensorFlow程序,指定使用哪个GPU,但我想知道是否有某种方法可以避免依赖具有检查点的程序。考虑使用紧急执行。它是为您的网络进行这种动态调整而

可以使用环境变量指定在TensorFlow程序启动之前TensorFlow可以使用哪些GPU,例如
CUDA\u VISIBLE\u DEVICES=1 python my\u script.py

如何更改TensorFlow程序运行时可能使用的GPU


我知道可以将程序更改为具有检查点,然后使用
CUDA\u VISIBLE\u设备从这些检查点重新运行TensorFlow程序,指定使用哪个GPU,但我想知道是否有某种方法可以避免依赖具有检查点的程序。

考虑使用紧急执行。它是为您的网络进行这种动态调整而量身定制的

import random
import tensorflow as tf
tf.enable_eager_execution()

x = tf.constant(1)

for _ in range(10):
  dev = random.choice(['/cpu:0', '/gpu:0'])
  with tf.device(dev):
    x = x + 1
    print('res {} computed on {}'.format(x.numpy(), x.device))

通过在定义图形时指定设备,可以将部分计算图形放置在不同的GPU上ops@kmario23谢谢,我明白了,但是你不能在TensorFlow程序运行时改变它,对吗?哦,你的意思是在程序运行时在GPU之间跳转?这很棘手。一个天真的想法可能是使用一些控制流将执行重定向到所需的GPU。虽然我还没试过,但很有意思。。