python error系列之tensorflow篇

        电脑崩了,突然识别不出网卡了,然后万能解决方法——重装系统🙃。装完又要重新配环境。因为要跑的代码是tensorflow1.3,自动安装的版本默认是最新的,即使是pip install tensorflow==1.3,但是在自动安装tensorflow相关依赖包时有时还是会默认装最新版的,就导致一直出现版本不匹配的问题。

1. tensorflow与protobuf的版本对应

        当tensorflow和protobuf版本不匹配的时候就会报下面这个错误。tensorflow对protobuf的版本要求很严格,编译tensorflow的C库时,没有找到具体的版本参考,bazel的版本官网上有详细说明。

    from google.protobuf.pyext import _message
ImportError: DLL load failed: 找不到指定的程序。

经过一番查找,目前只找到了以下几个对应关系:

tensorflow 1.5 --------------- protobuf 3.4
tensorflow 1.12 --------------- protobuf 3.6
tensorflow 1.10 --------------- protobuf 3.6
tensorflow 1.0.0 --------------- protobuf 3.1
tensorflow 0.12 --------------- protobuf 3.1
tensorflow 0.11 --------------- protobuf 3.0.2

解决方法:
卸载掉之前的protobuf;然后pip install protobuf==XXX(对应版本号)

2. tensorflow与keras版本对应

        当tensorflow与keras的版本不匹配时,就会出现:

ModuleNotFoundError: No module named 'tensorflow.python.eager'

        这个是tensorflow与keras的版本对应表。同样卸载安装对应版本。

3. tensorflow与numpy版本对应

        有时还会出现tensorflow和numpy的版本不兼容的问题,这个我没找到官方的对应表。我目前知道的是tensorflow1.12和tensorflow1.3都可以用numpy1.17.4。

        还有一个问题,一开始是在anaconda中新建环境安装卸载各种包,有时候install/uninstall一个包会同时install/uninstall其他相关的依赖包,搞得我一直因为版本对应的问题重装了好几遍🤦,如果是个别包的版本不对应可以直接在pycharm中删去再重装对应版本的包,感觉这样更方便🤓。

4. tensorflow/tensorflow-gpu与python/cuda的版本对应

看这里

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章