tensorflow加载预训练模型的时候报错:ValueError:No OP Named DecodeBmp in difined operations的解决

我在实验室里的一个服务器上训练了一个模型,然后在另一个服务器上加载模型,出现以下错误:ValueError:No OP Named DecodeBmp in difined operations。

看了一下出错的地方,是在tensorflow内部出错,不好调试,于是google之后,发现这是因为tenflow版本不兼容的问题,需要1.3以上的版本来加载模型。

查看了一下两台服务器的tensorflow-gpu版本,果然训练服务器的版本是1.4,而加载模型的服务器版本是1.2。

解决方案:pip install --ignore-installed --upgrade tensorflow-gpu==1.4

以上这条指令可以按照你的需求在线安装对应的tensorflow-GPU版本。

最后,专门用安装低版本tensorflow的服务器中训练了一个模型,放在安装高版本tensorflow的服务器中运行,发现是没有问题的,这证明:目前来看,tensorflow的向下兼容性还是很好的。

----------------------------------------         第一条分割线      -----------------------------------------------

但是在安装了更高版本的tensorflow时,报出了另一个错误:importError:libcudnn.so.6: cannot open shared object file: No such file or directory。

通过查询得知,这是因为tensorflow-gpu==1.4以上版本需要cudnn6.0以上的支持,但是下载了cudnn6.0并按照

1、ubuntu16.04下安装CUDA,cuDNN及tensorflow-gpu版本过程

2、Ubuntu 14.04 安装 nvidia cudnn

中安装cudnn的方式进行安装,但是并没有解决这个问题。

最后,只能暂时卸载tensorflow-gpu 用tensorflow-cpu是可以跑出结果的。通过这次经历,也领悟到了创建虚拟环境的重要性。这样就不用每次重复卸载,安装tensorflow-gpu了。

----------------------------------------         第二条分割线      ---------------------------------------------

不甘心,又尝试了第二种安装方式,也就是deb的安装方式(不知道这种叫法对不对,欢迎拍砖),具体步骤是:

1、官方上下载deb安装包


2、随便放在一个文件夹里,并打开终端执行:

sudo dpkg -i libcudnn6_6.0.21-1+cuda8.0_amd64.deb

3、接下来,关闭终端,在pycharm中运行深度学习程序,发现可以运行。

参考来源:NVIDIA官方安装教程


猜你喜欢

转载自blog.csdn.net/u013044310/article/details/79862712