运行以下代码来检查TensorFlow是否能调用到GPU:
import tensorflow as tf
print("TensorFlow version:", tf.__version__)
print("Eager execution:", tf.executing_eagerly())
# 检查是否有可用的GPU
gpus = tf.config.list_physical_devices("GPU")
if not gpus:
print("No GPUs found. Please check your GPU installation.")
else:
print(f"GPUs: {gpus}")
try:
# 设置GPU显存按需增长
for gpu in gpus:
tf.config.experimental.set_memory_growth(gpu, True)
# 如果有多个GPU,仅使用第0个GPU
tf.config.set_visible_devices(gpus[0], "GPU")
# 验证是否成功配置
logical_gpus = tf.config.list_logical_devices('GPU')
print(f"Physical GPUs: {len(gpus)}, Logical GPUs: {len(logical_gpus)}")
except RuntimeError as e:
print(e)
上面这段代码是用于检查TensorFlow环境和GPU配置的Python脚本,而下面是其每一行代码的详细中文解释:
import tensorflow as tf
导入TensorFlow库,并使用别名tf
。
print("TensorFlow version:", tf.__version__)
打印TensorFlow的版本号。
print("Eager execution:", tf.executing_eagerly())
打印TensorFlow是否处于即时执行模式(Eager Execution),这种模式下操作会立即执行并返回结果,而不是构建一个操作的图。
gpus = tf.config.list_physical_devices("GPU")
列出所有物理GPU设备。
if not gpus:
print("No GPUs found. Please check your GPU installation.")
else:
print(f"GPUs: {gpus}")
如果系统中没有找到GPU,则打印提示信息。如果找到了GPU,则打印GPU的列表。
try:
# 设置GPU显存按需增长
for gpu in gpus:
tf.config.experimental.set_memory_growth(gpu, True)
尝试设置GPU显存用量按需增长,即GPU显存不是一开始就全部分配,而是随着使用逐渐增加。
# 如果有多个GPU,仅使用第0个GPU
tf.config.set_visible_devices(gpus[0], "GPU")
如果有多个GPU,只选择使用第一个GPU(索引为0的GPU)。
# 验证是否成功配置
logical_gpus = tf.config.list_logical_devices('GPU')
print(f"Physical GPUs: {len(gpus)}, Logical GPUs: {len(logical_gpus)}")
验证GPU配置是否成功,打印物理GPU和逻辑GPU的数量。逻辑GPU是TensorFlow根据物理GPU的数量和配置自动创建的。
except RuntimeError as e:
print(e)
如果在配置GPU时发生运行时错误,打印错误信息。
请注意,这段代码中的一些函数(如tf.config.experimental.set_memory_growth
)可能在不同版本的TensorFlow中有所不同,或者在不同的环境中可能不可用。此外,代码中的异常处理主要是为了捕获在GPU配置过程中可能出现的RuntimeError
。