TensorFlow "DNN library is not found" in CI
TensorFlow needs cuDNN for GPU neural-network primitives, and it could not find a usable cuDNN. Unlike a load-warning, this hard error stops the op because no DNN backend is available at all.
What this error means
A GPU op fails with "Node ... defined ... DNN library is not found." The job may have logged a libcudnn load warning earlier.
python
tensorflow.python.framework.errors_impl.UnimplementedError: DNN library is not found.
[[{{node sequential/conv2d/Conv2D}}]]Common causes
cuDNN is absent or unloadable
No libcudnn is installed, or the one present cannot be loaded, so TF has no DNN backend for the GPU.
cuDNN not on the loader path
cuDNN is installed via pip but its lib directory is not on LD_LIBRARY_PATH, so TF cannot find it.
How to fix it
Install cuDNN and expose it to the loader
- Install the cuDNN wheel matching the TF CUDA version.
- Add its lib directory to
LD_LIBRARY_PATH. - Confirm with the TF build info that GPU support is active.
Terminal
pip install "tensorflow[and-cuda]"
python -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"Verify cuDNN loads before training
Probe the library directly so a missing DNN backend fails fast with a clear message.
Terminal
python -c "import ctypes; ctypes.CDLL('libcudnn.so.8')"How to prevent it
- Install cuDNN alongside CUDA for every GPU TensorFlow job.
- Add the cuDNN lib directory to LD_LIBRARY_PATH in CI.
- List physical GPUs in a setup step to confirm the backend.
Related guides
TensorFlow "Could not load dynamic library 'libcudnn.so.8'" in CIFix TensorFlow "Could not load dynamic library 'libcudnn.so.8'" in CI - the cuDNN library is missing or its v…
TensorFlow "Failed to get convolution algorithm" (cuDNN) in CIFix TensorFlow "Failed to get convolution algorithm. This is probably because cuDNN failed to initialize" in…
CUDA "Could not load dynamic library 'libcudart.so'" in CIFix "Could not load dynamic library 'libcudart.so.12'" in CI - the CUDA runtime library is missing from the r…