Ubuntu/VSCode下TensorFlow GPU识别失败问题求助
解决Ubuntu 22.04下TensorFlow无法识别GPU的问题
问题详情
已完成NVIDIA 550驱动、CUDA 12.4、CuDNN及TensorRT的安装,且CuDNN的mnistCUDNN测试通过。通过pip install tensorflow[and-cuda]安装TensorFlow 2.16.1后,运行代码出现以下警告:
TF-TRT Warning: Could not find TensorRT
Cannot dlopen some GPU libraries
执行tf.config.list_physical_devices('GPU')返回空列表,GPU加速无法启用。
环境信息
- Python版本:3.10.12
- TensorFlow版本:2.16.1
- 硬件:Intel i7-14700K、NVIDIA GeForce RTX 4070
- 内核版本:6.5.0-28-generic
解决步骤
1. 修复环境变量配置
确保CUDA、CuDNN、TensorRT的路径正确加入系统环境变量:
- 编辑shell配置文件(
~/.bashrc或~/.zshrc),添加以下内容:export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=/usr/local/cudnn/lib64:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=/usr/local/tensorrt/lib:$LD_LIBRARY_PATH export PATH=/usr/local/cuda/bin:$PATH - 执行
source ~/.bashrc(对应你的shell配置文件)使配置生效,重启VSCode(已打开的VSCode进程不会自动同步新环境变量)
2. 匹配TensorRT与TensorFlow版本
TensorFlow 2.16.1官方适配的TensorRT版本为8.6.x,若安装的是更高版本(如9.x)会导致识别失败:
- 卸载现有TensorRT(以deb安装为例):
sudo apt remove tensorrt sudo apt autoremove - 下载适配的TensorRT 8.6.x版本,解压后将其
lib目录路径加入LD_LIBRARY_PATH(步骤1已包含该路径配置)
3. 修复CuDNN库软链接
CuDNN的动态库软链接可能未正确创建,执行以下命令修复(替换版本号为你实际安装的CuDNN版本,如8.9.x则改为libcudnn_ops_infer.so.8.9):
cd /usr/local/cuda/lib64 sudo ln -sf libcudnn_ops_infer.so.8 libcudnn_ops_infer.so sudo ln -sf libcudnn_cnn_infer.so.8 libcudnn_cnn_infer.so sudo ln -sf libcudnn_adv_infer.so.8 libcudnn_adv_infer.so
4. 验证VSCode Python环境
- 在VSCode终端执行
which python,确认使用的Python解释器是安装TensorFlow的虚拟环境/全局环境 - 直接在终端运行以下命令,排除编辑器环境变量问题:
python -c "import tensorflow as tf; print(tf.__version__); print(tf.config.list_physical_devices('GPU'))"
5. 重新安装NVIDIA驱动
内核6.5.0-28-generic与部分NVIDIA驱动版本可能存在兼容性问题,尝试重新安装:
sudo apt purge nvidia* sudo apt autoremove sudo ubuntu-drivers autoinstall
重启系统后,执行nvidia-smi确认驱动正常加载
内容的提问来源于stack exchange,提问作者fmccabe80
相关产品推荐
相关产品推荐

