Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.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
Tensorflow获取默认设备名称_Tensorflow - Fatal编程技术网

Tensorflow获取默认设备名称

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()列出可见设备的

在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()列出可见设备的方法,但是必须有一种方法来查询当前默认设备,这样我就不必每次都在
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正在使用,否则您得到
'