我正在尝试创建和训练一个CNN模型。但是每次我运行代码时,tensorflow都没有使用GPU,而是使用CPU。我已经安装了最新版本的tensorflow。附上详细资料。
python => 3.9.5
Tensorflow-GPU => 2.5.0
CUDA => 11.3
cuDNN => 8.2.1
在运行时,我得到以下输出和警告消息。(平台:VS code)
2021-07-28 15:35:13.163991: W tensorflow/core/common_runtime/bfc_allocator。[cc:337]垃圾收集:释放空闲内存区域(即分配),以便我们可以重新分配更大的区域,以避免由于内存碎片而导致的OOM。如果您经常看到此消息,则说明您正在运行可用设备内存的阈值附近,重新分配可能会导致巨大的性能开销。您可以尝试较小的批处理大小来观察性能影响。设置TF_ENABLE_GPU_GARBAGE_COLLECTION=false,如果您想禁用此功能。
系统性能
输出代码可在此处访问
注意:我已经尝试添加以下代码来激活gpu,但它不起作用。
gpus = tf.config.experimental.list_physical_devices('GPU')
tf.config.experimental.set_memory_growth(gpus[0], True)
tf.config.set_visible_devices(gpus[0], 'GPU')
建议输出:
试试这个:
physical_devices = tf.config.list_physical_devices('GPU')
print("Num GPUs:", len(physical_devices))
由于你的模型非常小,所以GPU可能会受到系统其余部分的瓶颈,无法使用完整的GPU。
另一个注意事项,任务管理器不是检查GPU负载的最佳工具,如果可用,请使用nvidia-smi。
我将其设置为env设置,如下所示
os.environ['TF_ENABLE_GPU_GARBAGE_COLLECTION'] = 'false'