我正在尝试按照本教程安装 Tensorflow 对象检测 API。当我到达最后时,在尝试
python object_detection/builders/model_builder_tf2_test.py
命令时,出现以下错误:
Traceback (most recent call last):
File "object_detection/builders/model_builder_tf2_test.py", line 25, in <module>
from object_detection.builders import model_builder
File "/home/deeplearning/model_compression/TFOD-TRT/venv/lib/python3.6/site-packages/object_detection/builders/model_builder.py", line 23, in <module>
from object_detection.builders import anchor_generator_builder
File "/home/deeplearning/model_compression/TFOD-TRT/venv/lib/python3.6/site-packages/object_detection/builders/anchor_generator_builder.py", line 27, in <module>
from object_detection.protos import anchor_generator_pb2
File "/home/deeplearning/model_compression/TFOD-TRT/venv/lib/python3.6/site-packages/object_detection/protos/anchor_generator_pb2.py", line 5, in <module>
from google.protobuf.internal import builder as _builder
ImportError: cannot import name 'builder'
这些是我的系统设置:
您可以在这里查看:
$ nvidia-smi
Fri Mar 18 15:35:30 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 510.47.03 Driver Version: 510.47.03 CUDA Version: 11.6 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA GeForce ... On | 00000000:01:00.0 Off | N/A |
| N/A 48C P0 N/A / N/A | 412MiB / 4096MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 1144 G /usr/lib/xorg/Xorg 28MiB |
| 0 N/A N/A 1371 G /usr/bin/gnome-shell 67MiB |
| 0 N/A N/A 1622 G /usr/lib/xorg/Xorg 135MiB |
| 0 N/A N/A 1798 G /usr/bin/gnome-shell 24MiB |
| 0 N/A N/A 2163 G /usr/lib/firefox/firefox 149MiB |
| 0 N/A N/A 6459 G /usr/lib/firefox/firefox 1MiB |
+-----------------------------------------------------------------------------+
$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Thu_Feb_10_18:23:41_PST_2022
Cuda compilation tools, release 11.6, V11.6.112
Build cuda_11.6.r11.6/compiler.30978841_0
$ /sbin/ldconfig -N -v $(sed 's/:/ /' <<< $LD_LIBRARY_PATH) 2>/dev/null | grep libcudnn
libcudnn_cnn_train.so.8 -> libcudnn_cnn_train.so.8.3.2
libcudnn_adv_train.so.8 -> libcudnn_adv_train.so.8.3.2
libcudnn_adv_infer.so.8 -> libcudnn_adv_infer.so.8.3.2
libcudnn_ops_infer.so.8 -> libcudnn_ops_infer.so.8.3.2
libcudnn_ops_train.so.8 -> libcudnn_ops_train.so.8.3.2
libcudnn.so.8 -> libcudnn.so.8.3.2
libcudnn_cnn_infer.so.8 -> libcudnn_cnn_infer.so.8.3.2
(venv) deeplearning@deeplearning:~/model_compression/models/research$ dpkg -l | grep TensorRT
ii graphsurgeon-tf 8.4.0-1+cuda11.6 amd64 GraphSurgeon for TensorRT package
ii libnvinfer-bin 8.4.0-1+cuda11.6 amd64 TensorRT binaries
ii libnvinfer-dev 8.4.0-1+cuda11.6 amd64 TensorRT development libraries and headers
ii libnvinfer-doc 8.4.0-1+cuda11.6 all TensorRT documentation
ii libnvinfer-plugin-dev 8.4.0-1+cuda11.6 amd64 TensorRT plugin libraries
ii libnvinfer-plugin8 8.4.0-1+cuda11.6 amd64 TensorRT plugin libraries
ii libnvinfer-samples 8.4.0-1+cuda11.6 all TensorRT samples
ii libnvinfer8 8.4.0-1+cuda11.6 amd64 TensorRT runtime libraries
ii libnvonnxparsers-dev 8.4.0-1+cuda11.6 amd64 TensorRT ONNX libraries
ii libnvonnxparsers8 8.4.0-1+cuda11.6 amd64 TensorRT ONNX libraries
ii libnvparsers-dev 8.4.0-1+cuda11.6 amd64 TensorRT parsers libraries
ii libnvparsers8 8.4.0-1+cuda11.6 amd64 TensorRT parsers libraries
ii onnx-graphsurgeon 8.4.0-1+cuda11.6 amd64 ONNX GraphSurgeon for TensorRT package
ii python3-libnvinfer 8.4.0-1+cuda11.6 amd64 Python 3 bindings for TensorRT
ii python3-libnvinfer-dev 8.4.0-1+cuda11.6 amd64 Python 3 development package for TensorRT
ii tensorrt 8.4.0.6-1+cuda11.6 amd64 Meta package of TensorRT
ii uff-converter-tf 8.4.0-1+cuda11.6 amd64 UFF converter for TensorRT package
$ protoc --version
libprotoc 3.12.3
pip list
Package Version
----------------------------- ---------
absl-py 0.12.0
apache-beam 2.37.0
appdirs 1.4.4
astunparse 1.6.3
attrs 21.4.0
avro-python3 1.10.2
beautifulsoup4 4.10.0
cached-property 1.5.2
cachetools 4.2.4
certifi 2021.10.8
charset-normalizer 2.0.12
clang 5.0
cloudpickle 2.0.0
colorama 0.4.4
contextlib2 21.6.0
crcmod 1.7
cycler 0.11.0
Cython 0.29.28
dataclasses 0.8
decorator 5.1.1
dill 0.3.1.1
dm-tree 0.1.6
docopt 0.6.2
fastavro 1.4.7
flatbuffers 1.12
gast 0.4.0
gin-config 0.5.0
google 3.0.0
google-api-core 2.7.1
google-api-python-client 2.41.0
google-auth 1.35.0
google-auth-httplib2 0.1.0
google-auth-oauthlib 0.4.6
google-cloud 0.34.0
google-pasta 0.2.0
googleapis-common-protos 1.56.0
grpcio 1.44.0
h5py 3.1.0
hdfs 2.6.0
httplib2 0.19.1
idna 3.3
importlib-metadata 4.8.3
importlib-resources 5.4.0
joblib 1.1.0
kaggle 1.5.12
keras 2.6.0
Keras-Preprocessing 1.1.2
kiwisolver 1.3.1
lvis 0.5.3
lxml 4.8.0
Mako 1.1.6
Markdown 3.3.6
MarkupSafe 2.0.1
matplotlib 3.3.4
neural-structured-learning 1.3.1
numpy 1.19.5
oauth2client 4.1.3
oauthlib 3.2.0
object-detection 0.1
onnx 1.8.1
onnxruntime 1.8.0
opencv-python 4.5.5.64
opencv-python-headless 4.5.5.64
opt-einsum 3.3.0
orjson 3.6.1
pandas 1.1.5
Pillow 8.2.0
pip 21.3.1
pkg_resources 0.0.0
platformdirs 2.4.0
portalocker 2.4.0
promise 2.3
proto-plus 1.20.3
protobuf 3.19.4
psutil 5.9.0
py-cpuinfo 8.0.0
pyarrow 6.0.1
pyasn1 0.4.8
pyasn1-modules 0.2.8
pycocotools 2.0
pycuda 2021.1
pydot 1.4.2
pymongo 3.12.3
pyparsing 2.4.7
python-dateutil 2.8.2
python-slugify 6.1.1
pytools 2022.1.2
pytz 2021.3
PyYAML 6.0
regex 2022.3.15
requests 2.27.1
requests-oauthlib 1.3.1
rsa 4.8
sacrebleu 2.0.0
scikit-learn 0.24.2
scipy 1.5.4
sentencepiece 0.1.96
seqeval 1.2.2
setuptools 59.6.0
six 1.15.0
soupsieve 2.3.1
tabulate 0.8.9
tensorboard 2.6.0
tensorboard-data-server 0.6.1
tensorboard-plugin-wit 1.8.1
tensorflow 2.6.2
tensorflow-addons 0.14.0
tensorflow-datasets 4.5.2
tensorflow-estimator 2.6.0
tensorflow-hub 0.12.0
tensorflow-io 0.21.0
tensorflow-io-gcs-filesystem 0.21.0
tensorflow-metadata 1.2.0
tensorflow-model-optimization 0.7.1
tensorflow-text 2.6.0
termcolor 1.1.0
text-unidecode 1.3
tf-models-official 2.7.1
tf-slim 1.1.0
tf2onnx 1.8.1
threadpoolctl 3.1.0
tqdm 4.63.0
typeguard 2.13.3
typing-extensions 3.7.4.3
uritemplate 4.1.1
urllib3 1.26.9
Werkzeug 2.0.3
wheel 0.37.1
wrapt 1.12.1
zipp 3.6.0
缺少什么?我尝试重新安装所有内容,从源代码安装 protobuf 等等。 Tensorflow 可以工作,但这个不行。
感谢您的宝贵时间, 弗兰.
编辑1
一些可能很重要的信息。
我尝试过切换python版本并重新安装所有NVIDIA/CUDA环境。好像跟这个没什么关系
名为 builder 的包应该在这里:
~/model_compression/TFOD-TRT/venv/lib/python3.8/site-packages/google/protobuf/internal$ ls
_api_implementation.cpython-38-x86_64-linux-gnu.so __init__.py
api_implementation.py message_listener.py
containers.py __pycache__
decoder.py python_message.py
encoder.py type_checkers.py
enum_type_wrapper.py well_known_types.py
extension_dict.py wire_format.py
但事实并非如此。功能解析器不应该自己做这件事吗?
编辑2
为tensorflow-model-garden添加标签
收到相同的错误消息。
幸运的是,经过几次尝试后解决了,但我无法准确指出。 希望您能解决问题。
尝试
conda install protobuf==3.14
并检查 conda 依赖项是否具有 libprotobuf 并且 pip 依赖项是否具有 protobuf。
以下是我的案例(环境);
# environment.yaml
name: tfod
channels:
- defaults
dependencies:
- ca-certificates=2022.07.19=haa95532_0
- certifi=2022.6.15=py39haa95532_0
- libprotobuf=3.14.0=h23ce68f_0 ##### this one and (below↓)#####
- openssl=1.1.1q=h2bbff1b_0
- pip=22.1.2=py39haa95532_0
- python=3.9.12=h6244533_0
- setuptools=61.2.0=py39haa95532_0
- six=1.16.0=pyhd3eb1b0_1
- sqlite=3.39.2=h2bbff1b_0
- tzdata=2022a=hda174b7_0
- vc=14.2=h21ff451_1
- vs2015_runtime=14.27.29016=h5e58377_2
- wheel=0.37.1=pyhd3eb1b0_0
- wincertstore=0.2=py39haa95532_2
- zlib=1.2.12=h8cc25b3_2
- pip:
- apache-beam==2.40.0
- astunparse==1.6.3
- avro-python3==1.10.2
- cloudpickle==2.1.0
- contextlib2==21.6.0
- crcmod==1.7
- dill==0.3.1.1
- docopt==0.6.2
- fastavro==1.5.4
- flatbuffers==1.12
- gast==0.4.0
- google-auth-oauthlib==0.4.6
- google-pasta==0.2.0
- grpcio==1.47.0
- h5py==3.7.0
- hdfs==2.7.0
- importlib-metadata==4.12.0
- keras==2.9.0
- keras-preprocessing==1.1.2
- libclang==14.0.6
- lvis==0.5.3
- markdown==3.4.1
- markupsafe==2.1.1
- numpy==1.22.4
- oauthlib==3.2.0
- object-detection==0.1
- opencv-python==4.6.0.66
- opt-einsum==3.3.0
- orjson==3.7.11
- proto-plus==1.22.0
- protobuf==3.19.4 ##### this one #####
- pyarrow==7.0.0
- pydot==1.4.2
- pymongo==3.12.3
- pyparsing==2.4.7
- requests-oauthlib==1.3.1
- tensorboard==2.9.1
- tensorboard-data-server==0.6.1
- tensorboard-plugin-wit==1.8.1
- tensorflow==2.9.1
- tensorflow-estimator==2.9.0
- tensorflow-io==0.26.0
- tensorflow-io-gcs-filesystem==0.26.0
- tensorflow-text==2.9.0
- tf-models-official==2.9.2
- werkzeug==2.2.2
- wrapt==1.14.1
prefix: C:\Users\user\anaconda3\envs\tfod
已解决
请按照以下步骤操作:
pip install --upgrade proctobuf
现在您将收到另一个类似于以下内容的错误:
这是因为https://tensorflow-object-detection-api-tutorial.readthedocs.io/en/latest/install.html给出的步骤安装了旧版本的tensorflow,只能与3.20以下的proctobuf一起使用.conda info --envs
.../Lib/site-packages/google/protobuf/internal
临时复制到计算机上的任何其他文件夹。.../Lib/site-packages/google/protobuf/internal
文件夹中。