Tensorflow获取默认设备名称
在Tensorflow 1.14中,我试图使用Tensorflow获取默认设备名称,tensorflow,Tensorflow,在Tensorflow 1.14中,我试图使用tf.data.experimental.prefetch\u to\u device(device=…)将数据预取到GPU。但我并不总是在GPU上训练,我经常在CPU上训练(特别是在开发期间) 有没有办法让当前的默认设备在使用中?Tensorflow要么选择CPU(当我设置CUDA\u VISIBLE\u DEVICES=-1时),否则它将选择GPU,默认值通常有效 到目前为止,我只能找到一种使用sess.list_devices()列出可见设备的
tf.data.experimental.prefetch\u to\u device(device=…)
将数据预取到GPU。但我并不总是在GPU上训练,我经常在CPU上训练(特别是在开发期间)
有没有办法让当前的默认设备在使用中?Tensorflow要么选择CPU(当我设置CUDA\u VISIBLE\u DEVICES=-1
时),否则它将选择GPU,默认值通常有效
到目前为止,我只能找到一种使用sess.list_devices()列出可见设备的方法,但是必须有一种方法来查询当前默认设备,这样我就不必每次都在
prefetch_to_device
中手动更改它,对吗?目前没有API方法来执行您所说的操作。最近的
device='gpu:0'如果tf.test.gpu\u可用()其他'cpu'
这是你已经说过的
我认为这样做的原因是分配的水平较低:
也许你也可以试一下
希望有帮助。到目前为止,我找到的最好的解决方案是使用
tf.test。是否有可用的\u gpu
:
device = 'gpu:0' if tf.test.is_gpu_available() else 'cpu'
那么,您想在运行会话时获取tensorflow正在使用的当前设备吗?或者,您想知道启动会话后将使用哪种设备?理想情况下,我想知道会话启动后将使用哪种设备,尽管我认为这两种设备都可以提供合适的答案。我想知道如何在
prefetch_to_device
中填写device
,而不将其作为参数添加到python中。Tensorflow在创建会话之前很好地选择了默认值。如果gpu可用,则所有操作都会加载到gpu:0
,否则会加载到CPU上。我只想对预回迁到设备
进行同样的操作。好的,我假设您需要一种API方式来完成,但目前似乎没有。您可以创建一个自定义函数,该函数将在可用设备上迭代并逐个尝试,但我知道这不是您想要的。为此,我单独发表了一篇文章,请在将tensorflow导入为tf
后检查它,尝试运行tf.test.gpu\u device\u name()
。如果您得到'/device:GPU:0'
其中0
是索引,那么GPU正在使用,否则您得到'