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的版本對應

看這裏

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