关于我装的GPU版tensorflow然后却是cpu在跑这件事

神经网络的层数越来越多,程序跑的也是越来越慢,打开任务管理器发现我的GPU根本没用到,白瞎我买的电脑,和费那劲装的tensorflowGPU版


首先看一下GPU是否可用

import tensorflow as tf
print(tf.config.list_physical_devices('GPU'))

我的输出是[],也就是空
在cmd窗口激活我们用的tensorflow环境,会显示找不到cusolver64_10.dll,我们进入cuda的目录,我的是默认的C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\bin,把cusolver64_11.dll改名改成10
到这里我就看到我的GPU了 [PhysicalDevice(name=’/physical_device:GPU:0’, device_type=‘GPU’)]


继续运行程序,我以前可以正常运行的代码开始报这个错

NotFoundError: No algorithm worked! [[node vgg_net/conv2d/Conv2D
(defined at :94) ]]
[Op:__inference_train_function_3048]

Errors may have originated from an input operation. Input Source
operations connected to node vgg_net/conv2d/Conv2D: IteratorGetNext
(defined at :10)

Function call stack: train_function

我只改了GPU相关的东西,所以就看看指定运行GPU可不可以

import tensorflow as tf
physical_devices = tf.config.list_physical_devices(‘GPU’)
tf.config.experimental.set_memory_growth(physical_devices[0], True)

然后。。。
RuntimeError: Physical devices cannot be modified after being initialized,tensorflow2.0

也就是需要在实例化模型前分配GPU,指定GPU的语句写的尽量靠前,直接在import tensorflow as tf ,一步到位,从头开始重新运行程序,就好使了

为了充分利用GPU的性能,我们可以增大batch大小,使GPU负载在70%-80%左右,初学阶段规模比较小,也不用设太大

你可能感兴趣的:(报错记录,回归,线性回归,机器学习)