我试图使用vscode中的jupyter笔记本创建一个独立的虚拟环境,运行tensorflow & tf2onnx。
tf2onnx软件包推荐python3.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:不能直接创建描述符。如果此调用来自_pb2.py文件,则生成的代码已过时,必须使用Proc3.19.0重新生成。如果您不能立即重新生成您的原型,其他一些可能的解决方法是: 1.将protobuf包降级为3.20.x或更低。2.设置PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (但这将使用纯Python解析,而且要慢得多)。
此时,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发布于 2022-05-28 09:51:53
最近的一次原生质变化导致了TensorFlow断裂。在安装TensorFlow之前降级可能不起作用,因为TensorFlow可能会提高版本本身。检查安装过程中是否发生了这种情况。
你可能想要:
降级
pip install --upgrade "protobuf<=3.20.1"安装TensorFlow后,或
将TensorFlow升级到最新版本,因为TensorFlow已经在2.9.1版本中更新了它们的安装文件。
https://stackoverflow.com/questions/72411825
复制相似问题