记一次神坑错误
使用学校的服务器进行简单的resnet50进行分类任务训练。同样的代码在笔记本上可以正常运行,放到服务器上出现了一堆神坑错误。最典型的错误如标题所示。出现错误原因和解决方法如下:
(1)cudnn与TensorFlow不匹配
出现 Loaded runtime CuDNN library: 7.3.1 but source was compiled with: 7.4.2 错误,是因为TensorFlow-gpu的版本与当前环境下的cudnn版本不对应。因此解决方法有二:
一、更改cudnn版本
二、更改TensorFlow版本
在这里我选择了第二种方式。第一种更改cudnn版本坑太多,且有可能会影响其他库的正常使用。(实测QAQ!)
在更改TensorFlow版本后,一些语句可能会发生变化。例如从1.10.1到2.0就会在某些地方进行更改。
利用以下语句对版本进行降低:
pip -U install tensorflow-gpu==1.10.1
便可解决题目错误。但又会出现以下错误:
No module named 'keras.backend.tensorflow_backend'; 'keras.backend' is not a package
原因如下:
(2)TensorFlow与keras不匹配
根据以下链接找到对应版本的kears进行安装即可。
链接: link.
(3)numpy与TensorFlow、matplot不匹配
安装TensorFlow后,会导致numpy的版本也不合适。因此要调整numpy版本,同时对matplot版本进行降低。
最终,激动的心,颤抖的手,一个简单的代码,终于运行成功!