Tensorflow-GPU2.4.0,使用中出现的问题

一、运行代码时指定了NVIDIA GPU,NVIDIA GPU却没有显存频率波动,但CPU却满载

这个问题首先要检测安装好 Tensorflow-GPU版 后,GPU是否正常运行,运行下列代码检测

  • import tensorflow as tf
    import os
    os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
    print(tf.test.is_gpu_available())

显示为TRUE,代表NVIDIA GPU正常运行

显示为FALSE,代表NVIDIA GPU并没有运行

FALSE的解决办法:

运行下列代码检测:

  • import tensorflow as tf
    tf.test.is_gpu_available()

 运行后会发现,有的DLL缺失,无法找到,这里以图中的 cusolver64_10为例


如果显示not found,我们需要回到 CUDA 安装目录下的bin目录,里面有对应的各个DLL

如,名为 cusolver64_xx 的文件,将此文件单独复制出去,然后改为名为 cusolver64_10 

放回bin目录下,重新运行检测代码,显示为TRUE,即代表NVIDIA GPU已正常运行

上图所示,将改好名的文件,复制回bin目录

在确认GPU正常工作后,在我们的代码里,进行GPU指定,添加下列代码:

  • import os
    os.environ["CUDA_VISIBLE_DEVICES"] = "0"

‘ 0 ’ 表示的即是我们的 Nvidia GPU,在上面检测图中,我们也可以看到,visible gpu devices:0

如果不指定,即默认使用所有GPU,CPU也会满载运行;如果指定错误,同理GPU也不会工作。

当然,在CMD窗口,我们也可以运行Nvidia指令,查询GPU信息,输入命令: nvidia-smi


 二、运行代码时,出现 numpy.core._exceptions.MemoryError 错误

如图所示

 解决方法:

1.增加虚拟内存:在Tensorflow虚拟环境所在盘,增加虚拟内存

控制面板——系统和安全——系统——性能设置——高级——虚拟内存更改——Tensorflow在D盘

提示:

Unable to allocate 9.31 GiB for an array with shape (25000, 100000) and data type float32 

我们设置的虚拟内存大小,就给够10G,如果是18.9 Gib,那我们就给够20G虚拟内存

2.降低 batch_size 的值

   由于batch_size过大导致 超出内存,我们就将代码中的batch_size值手动降低,再运行

猜你喜欢

转载自blog.csdn.net/weixin_53062121/article/details/123441670