我正在嘗試使用 vscode 中的 jupyter notebook 創建一個運行 tensorflow 和 tf2onnx 的隔離虛擬環境。
tf2onnx 包推薦 python 3.7,我本地的 3.7.9 版本通常適用于 tensorflow 專案,所以我使用 pyenv 將本地和全域版本設定為 3.7.9。
以下是我的設定程序:
python -m venv .venv
然后在 vscode 中啟動一個新終端后:
pip install tensorflow==2.7.0
pip freeze > requirements.txt
在此之后,在我的 jupyter 筆記本的一個單元格中,以下行失敗
import tensorflow.keras as keras
例外:
TypeError: Descriptors cannot not be created directly. If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0. If you cannot immediately regenerate your protos, some other possible workarounds are: 1. Downgrade the protobuf package to 3.20.x or lower. 2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).
此時,protobuf包版本在我的需求檔案中顯示為 v4.21.0。在安裝 tensorflow 之前,我嘗試將 3.20.1 版本預安裝到虛擬環境中,但這沒有任何效果。
這是安裝 tensorflow 后的完整需求檔案:
absl-py==1.0.0
astunparse==1.6.3
cachetools==5.1.0
certifi==2022.5.18.1
charset-normalizer==2.0.12
flatbuffers==2.0
gast==0.4.0
google-auth==2.6.6
google-auth-oauthlib==0.4.6
google-pasta==0.2.0
grpcio==1.46.3
h5py==3.7.0
idna==3.3
importlib-metadata==4.11.4
keras==2.7.0
Keras-Preprocessing==1.1.2
libclang==14.0.1
Markdown==3.3.7
numpy==1.21.6
oauthlib==3.2.0
opt-einsum==3.3.0
protobuf==4.21.0
pyasn1==0.4.8
pyasn1-modules==0.2.8
requests==2.27.1
requests-oauthlib==1.3.1
rsa==4.8
six==1.16.0
tensorboard==2.9.0
tensorboard-data-server==0.6.1
tensorboard-plugin-wit==1.8.1
tensorflow==2.7.0
tensorflow-estimator==2.7.0
tensorflow-io-gcs-filesystem==0.26.0
termcolor==1.1.0
typing-extensions==4.2.0
urllib3==1.26.9
Werkzeug==2.1.2
wrapt==1.14.1
zipp==3.8.0
uj5u.com熱心網友回復:
protobuf的最新變化導致TensorFlow 崩潰。在安裝 TensorFlow 之前降級可能不起作用,因為 TensorFlow 本身可能會升級版本。檢查這是否是安裝程序中發生的情況。
您可能想要:
降級與
pip install --upgrade "protobuf<=3.20.1"
安裝 TensorFlow 后,或
將 TensorFlow 升級到最新版本,因為 TensorFlow 在 2.9.1 版本中更新了他們的設定檔案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/483462.html
標籤:Python 视觉工作室代码 jupyter-笔记本 张量流2.0
上一篇:vscode擴展中的C 型別補充
