agents icon indicating copy to clipboard operation
agents copied to clipboard

ImportError: Attempted to load a reverb dynamic library, but it could not find the required symbols inside of TensorFlow.

Open ace510 opened this issue 1 year ago • 3 comments

not sure why this comment exists, I cannot delete it

ace510 avatar Aug 01 '24 16:08 ace510

expected outcome: script completes

actual output: I get the following error output

error output:

2024-08-01 09:20:23.497544: I tensorflow/core/util/port.cc:153] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable TF_ENABLE_ONEDNN_OPTS=0`. 2024-08-01 09:20:23.497972: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:32] Could not find cuda drivers on your machine, GPU will not be used. 2024-08-01 09:20:23.500704: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:32] Could not find cuda drivers on your machine, GPU will not be used. 2024-08-01 09:20:23.509208: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:485] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered 2024-08-01 09:20:23.522218: E external/local_xla/xla/stream_executor/cuda/cuda_dnn.cc:8454] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered 2024-08-01 09:20:23.526436: E external/local_xla/xla/stream_executor/cuda/cuda_blas.cc:1452] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered 2024-08-01 09:20:23.535967: I tensorflow/core/platform/cpu_feature_guard.cc:210] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations. To enable the following instructions: AVX2 AVX_VNNI FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags. 2024-08-01 09:20:24.183294: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT Traceback (most recent call last): File "/home/ianclark/.pyenv/versions/3.11.9/lib/python3.11/site-packages/reverb/pybind.py", line 4, in from .libpybind import * ImportError: /home/ianclark/.pyenv/versions/3.11.9/lib/python3.11/site-packages/reverb/libpybind.so: undefined symbol: _ZN4absl12lts_2023012513hash_internal15MixingHashState5kSeedE

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/home/ianclark/Github/tf_agent/main.py", line 14, in import reverb File "/home/ianclark/.pyenv/versions/3.11.9/lib/python3.11/site-packages/reverb/init.py", line 27, in from reverb import item_selectors as selectors File "/home/ianclark/.pyenv/versions/3.11.9/lib/python3.11/site-packages/reverb/item_selectors.py", line 19, in from reverb import pybind File "/home/ianclark/.pyenv/versions/3.11.9/lib/python3.11/site-packages/reverb/pybind.py", line 6, in _load_op_library.reraise_wrapped_error(e) File "/home/ianclark/.pyenv/versions/3.11.9/lib/python3.11/site-packages/reverb/platform/default/load_op_library.py", line 43, in reraise_wrapped_error six.reraise(ImportError, File "/home/ianclark/.pyenv/versions/3.11.9/lib/python3.11/site-packages/six.py", line 718, in reraise raise value.with_traceback(tb) File "/home/ianclark/.pyenv/versions/3.11.9/lib/python3.11/site-packages/reverb/pybind.py", line 4, in from .libpybind import * ImportError: Attempted to load a reverb dynamic library, but it could not find the required symbols inside of TensorFlow. This commonly occurs when your version of tensorflow and reverb are mismatched. For example, if you are using the python package 'tf-nightly', make sure you use the python package 'dm-reverb-nightly' built on the same or the next night. If you are using a release version package 'tensorflow', use a release package 'dm-reverb' built to be compatible with that exact version. If all else fails, file a github issue on deepmind/reverb. Current installed version of tensorflow: 2.17.0.

Orignal error: /home/ianclark/.pyenv/versions/3.11.9/lib/python3.11/site-packages/reverb/libpybind.so: undefined symbol: _ZN4absl12lts_2023012513hash_internal15MixingHashState5kSeedE`

package version info: python --version Python 3.11.9

`pip list tf-agents Package Version


absl-py 2.1.0 asttokens 2.4.1 astunparse 1.6.3 cachetools 5.4.0 certifi 2024.7.4 charset-normalizer 3.3.2 cloudpickle 3.0.0 contourpy 1.2.1 cycler 0.12.1 decorator 5.1.1 dm-reverb 0.14.0 dm-tree 0.1.8 executing 2.0.1 flatbuffers 24.3.25 fonttools 4.53.1 gast 0.6.0 gin-config 0.5.0 google-auth 2.32.0 google-auth-oauthlib 1.2.1 google-pasta 0.2.0 grpcio 1.65.2 gym 0.23.0 gym-notices 0.0.8 h5py 3.11.0 idna 3.7 imageio 2.4.0 ipython 8.26.0 jedi 0.19.1 keras 3.4.1 kiwisolver 1.4.5 libclang 18.1.1 Markdown 3.6 markdown-it-py 3.0.0 MarkupSafe 2.1.5 matplotlib 3.9.1 matplotlib-inline 0.1.7 mdurl 0.1.2 ml-dtypes 0.3.2 namex 0.0.8 numpy 1.26.4 oauthlib 3.2.2 opt-einsum 3.3.0 optree 0.12.1 packaging 24.1 parso 0.8.4 pexpect 4.9.0 pillow 10.4.0 pip 24.2 portpicker 1.6.0 prompt_toolkit 3.0.47 protobuf 4.25.4 psutil 6.0.0 ptyprocess 0.7.0 pure_eval 0.2.3 pyasn1 0.6.0 pyasn1_modules 0.4.0 pygame 2.6.0 Pygments 2.18.0 pyparsing 3.1.2 python-dateutil 2.9.0.post0 PyVirtualDisplay 3.0 requests 2.32.3 requests-oauthlib 2.0.0 rich 13.7.1 rlds 0.1.8 rsa 4.9 setuptools 65.5.0 six 1.16.0 stack-data 0.6.3 tensorboard 2.17.0 tensorboard-data-server 0.7.2 tensorflow 2.17.0 tensorflow-estimator 2.15.0 tensorflow-io-gcs-filesystem 0.37.1 tensorflow-probability 0.22.1 termcolor 2.4.0 tf-agents 0.7.1 tf_keras 2.17.0 traitlets 5.14.3 typing_extensions 4.6.0 urllib3 2.2.2 wcwidth 0.2.13 Werkzeug 3.0.3 wheel 0.43.0 wrapt 1.14.1`

ace510 avatar Aug 01 '24 16:08 ace510

I have the same issue, did you find a solution?

nlsxp avatar Oct 29 '24 10:10 nlsxp

The issue comes from the Tensorflow version you have installed. At the time of this post, the highest version of Reverb is 0.14.0, and the latest version of Tensorflow it works with is 2.15.1. Your version of Tensorflow is higher than that so it won't work. The core issue is that pip will not detect the version problem and will install the latest available. If you install reverb in a clean environment following the official website, then it should install the right versions, but if later you make another installation that involves tensorflow (for example tf-agents or tf-keras) pip will automatically upgrade tensorflow version and Reverb will fail. If you really have to, use pip install tf-keras==2.15.1 to force a compatible version.

k1ngH0st avatar Feb 27 '25 13:02 k1ngH0st