问题描述
从 models/research/object_detection/model_main_tf2.py
(或仅 tensorflow/models
)运行 python -c "from object_detection import model_lib_v2"
时,我得到:
2021-05-24 11:09:02.622828: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library libcudart.so.11.0
Segmentation fault (core dumped)
我使用 this 指南来设置对象检测 API,没有任何问题,python object_detection/builders/model_builder_tf2_test.py
也能正常工作。
nvidia-smi
输出:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.73.01 Driver Version: 460.73.01 CUDA Version: 11.2 |
|-------------------------------+----------------------+----------------------+
| 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 GeForce GTX 1050 Off | 00000000:01:00.0 Off | N/A |
| N/A 55C P0 N/A / N/A | 248MiB / 4042MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
Python 版本:3.8.5
TensorFlow 版本:2.5.0
操作系统:Ubuntu 20.04.2 LTS (Focal Fossa)
2021-05-28 12:48:41.761418: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library libcudart.so.11.0
Fatal Python error: Segmentation fault
Current thread 0x00007fd3e6de8740 (most recent call first):
File "<frozen importlib._bootstrap>",line 219 in _call_with_frames_removed
File "<frozen importlib._bootstrap_external>",line 1101 in create_module
File "<frozen importlib._bootstrap>",line 556 in module_from_spec
File "<frozen importlib._bootstrap>",line 657 in _load_unlocked
File "<frozen importlib._bootstrap>",line 975 in _find_and_load_unlocked
File "<frozen importlib._bootstrap>",line 991 in _find_and_load
File "<frozen importlib._bootstrap>",line 219 in _call_with_frames_removed
File "<frozen importlib._bootstrap>",line 1042 in _handle_fromlist
File "/home/alessandro/.local/lib/python3.8/site-packages/PIL/ImageFont.py",line 48 in <module>
File "<frozen importlib._bootstrap>",line 783 in exec_module
File "<frozen importlib._bootstrap>",line 671 in _load_unlocked
File "<frozen importlib._bootstrap>",line 991 in _find_and_load
File "/usr/local/lib/python3.8/dist-packages/object_detection/utils/visualization_utils.py",line 35 in <module>
File "<frozen importlib._bootstrap>",line 1042 in _handle_fromlist
File "/usr/local/lib/python3.8/dist-packages/object_detection/eval_util.py",line 42 in <module>
File "<frozen importlib._bootstrap>",line 1042 in _handle_fromlist
File "/usr/local/lib/python3.8/dist-packages/object_detection/model_lib_v2.py",line 29 in <module>
File "<frozen importlib._bootstrap>",line 1042 in _handle_fromlist
File "<stdin>",line 1 in <module>
Segmentation fault (core dumped)
解决方法
我设法通过将 Pillow 降级到 7.0.0、将 numpy 降级到 1.19.5(这是目前仍与 tensorflow 2.5.0 兼容的最新版本)并将 pycocotools 降级到 2.0.0 来解决。