Python 确认TF2在培训时正在使用我的GPU

Python 确认TF2在培训时正在使用我的GPU,python,python-3.x,tensorflow,Python,Python 3.x,Tensorflow,我想知道在我按照TF教程中的建议将训练数据存储在GPU上之后,是否有办法确认我的TF模型正在GPU上训练。下面是一个简短的代码示例: 将tensorflow导入为tf 打印('Num GPU Available:',len(tf.config.experimental.list_物理_设备('GPU')) #在GPU上加载数据 使用tf.device('/GPU:0'): mnist=tf.keras.datasets.mnist (x_列,y_列),(x_测试,y_测试)=列表负载数据() x

我想知道在我按照TF教程中的建议将训练数据存储在GPU上之后,是否有办法确认我的TF模型正在GPU上训练。下面是一个简短的代码示例:

将tensorflow导入为tf
打印('Num GPU Available:',len(tf.config.experimental.list_物理_设备('GPU'))
#在GPU上加载数据
使用tf.device('/GPU:0'):
mnist=tf.keras.datasets.mnist
(x_列,y_列),(x_测试,y_测试)=列表负载数据()
x_系列,x_测试=x_系列/255.0,x_测试/255.0
#定义、编译和培训模型
model=tf.keras.models.Sequential([tf.keras.layers.density(1)])
compile(优化器='adam',loss='sparse\u categorical\u crossentropy',metrics=['acc'])
模型拟合(x\U序列,y\U序列,批量大小=32,历次=5)

有几种方法可以检查Tensorflow 2.x中的GPU。基本上,如果GPU可用,则模型将在其上运行(除非它正忙,例如,另一个锁定它的TF实例)。放置位置也将显示在日志文件中,并可通过nvidia smi等确认

在下面的代码中,我将假定
tensorflow
作为
tf
导入(根据惯例和您的代码)

要检查哪些设备可用,请运行:
tf.config.experimental.list\u物理设备()
以下是我的输出:

[物理设备(名称='/物理设备:CPU:0',设备类型='CPU'), 物理设备(名称='/物理设备:XLA\U CPU:0', device_type='XLA_CPU'),PhysicalDevice(名称='/physical_device:GPU:0', device_type='GPU'),PhysicalDevice(名称='/physical_设备:XLA_GPU:0', 设备\u type='XLA\u GPU')]

要检查系统上是否有GPU,请执行以下操作:

is_gpu=len(tf.config.experimental.list_物理设备('gpu'))>0
从Tensorflow 2.1中,此功能已从实验迁移而来,您可以以相同的方式使用:
tf.config.list\u physical\u devices()
,即

is_gpu=len(tf.config.list_物理设备('gpu'))>0
在某个时候,实验部分将被弃用

最后但并非最不重要的一点是,如果tensorflow是在没有CUDA的情况下构建的(这是一个非GPU版本),
列出物理设备(“GPU”)
也将返回
False
,即使您的系统物理上有GPU

“一旦TF识别出gpu,它是自动的吗?” 对。以下引述:

注意:使用tf.config.experimental.list_物理设备('GPU')来 确认TensorFlow正在使用GPU

如果得到认可,将在培训期间使用。如果您想完全确定,可以要求更明确的日志记录:

tf.debug.set\u log\u device\u placement(True)

有一种更简单的方法来实现这一点:

import tensorflow as tf
if tf.test.gpu_device_name():
    print('Default GPU Device: {}'.format(tf.test.gpu_device_name()))
else:
    print(""Please install GPU version of TF"")
(或)

(或)

TF中几乎没有有用的功能:

告知gpu是否可用

tf.test.is_gpu_available()
返回gpu设备的名称“


您可以随时运行nvidia smi或类似的命令行工具查看感谢,但如何确保培训使用的是gpu?gpu被识别后是否自动执行?@Gepeto97简短回答是“是”“。在编辑的文本的最后一节中有更详细的说明。发件人:
tf.test.is\u gpu\u可用吗?
:警告:此函数已弃用。它将在将来的版本中删除。更新说明:改用tf.config.list_物理_设备('GPU')。另外,tf.Session仅在TF1中。
tf.test.is_gpu_available()
tf.test.gpu_device_name()