You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何CUDA在PyTorch可用却突然无法支持TensorFlow?

问题原因分析

咱们先把这个报错的核心逻辑理清楚:

  • 你用的tensorflow-gpu v1.12.0是硬性绑定CUDA 9.0核心库的,它启动时会优先查找libcublas.so.9.0这类9.0版本的库文件,但你的Python 2.7环境里既没有系统级的CUDA 9.0路径,也没让它找到正确的依赖库位置。
  • 虽然你这个环境里装了cudatoolkit 9.2,但TensorFlow 1.12.0并不兼容9.2版本,所以根本不会去用这个版本的库;另外系统里nvcc -V显示的是9.1版本,还没有标准的/usr/local/cuda目录,说明CUDA不是系统全局安装的,各个conda环境的CUDA依赖是独立管理的。
  • 至于Python 3.6里的PyTorch能正常跑,是因为它的conda环境自带了cudatoolkit 9.0,而且PyTorch的库查找逻辑会优先加载自己环境内的CUDA依赖,不需要依赖系统级的配置,所以能正常调用GPU。
可行解决办法

这里给你三个不同方向的方案,你可以根据自己的操作习惯选:

方案一:临时/永久添加CUDA 9.0库路径到Python 2.7环境

既然你的PyTorch环境里已经有可用的CUDA 9.0库,直接把它的路径加到Python 2.7环境的库搜索路径里就行:

  1. 先找到你PyTorch 3.6环境的安装路径,一般是~/anaconda3/envs/你的PyTorch环境名/lib(如果是miniconda就是~/miniconda3/envs/...)
  2. 在启动Python 2.7环境前,执行这条命令临时生效:
    export LD_LIBRARY_PATH=~/anaconda3/envs/你的PyTorch环境名/lib:$LD_LIBRARY_PATH
    
    如果想要永久生效,把这条命令追加到你的~/.bashrc或者~/.profile文件里,下次登录就自动生效了。

方案二:升级TensorFlow到适配CUDA 9.1的版本

系统里的nvcc是9.1版本,你可以把Python 2.7环境里的TensorFlow换成支持CUDA 9.1的版本:

  • TensorFlow 1.13.1是第一个稳定支持CUDA 9.1的1.x版本,执行以下命令替换:
    pip uninstall tensorflow-gpu -y
    pip install tensorflow-gpu==1.13.1
    
    这个版本和你现有的cudnn 7.2.1兼容性很好,不需要额外调整cudnn。

方案三:在Python 2.7环境里重新安装适配的CUDA依赖

直接在Python 2.7的conda环境里安装TensorFlow 1.12.0要求的CUDA 9.0和对应cudnn:

conda install cudatoolkit=9.0 cudnn=7.0.5 -c conda-forge

这里选cudnn 7.0.5是因为它是TensorFlow 1.12.0官方推荐的、适配CUDA 9.0的稳定版本,安装完成后重启环境,TensorFlow就能直接加载自己环境内的库了。

内容的提问来源于stack exchange,提问作者Hongcheng Wang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:35:53