这是比较常见的问题,根本原因就是找不到cuda
下面说一下对应的几种情况:
一、使用的是命令行在相应的虚拟环境下调用gpu版本的tensorflow报错
这种情况一般有两种原因:
1、cuda和tensorflow版本不对应
解决办法:重新安装tensorflow,cuda,版本要对应,tensorflow中文社区有对应的详细内容,点开链接拉到最下面
2、系统找到不到cuda
vim ~./bashrc
最后面添加
export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda
最后刷新一下
source ~/.bashrc
测试
切换到你对应的虚拟环境,输入python测试
import tensorflow as tf
print(tf.__version__)
可以得到对应的版本,说明成功。
二、使用pycharm时import tensorflow报错
首先用上一步的测试看看能不能成功打印tensorflow版本,如果失败就用上面的方法先处理一下。
编译器不报错,pycharm却报错是因为pycharm无法读到你设置的环境变量。解决办法分两种情况
1、使用的是本地的pycharm和本地的虚拟环境
linux下解决办法两种:
1.1在终端通过bash启动pycharm,就会找到环境变量了
1.2找到pycharm.sh文件后将cuda相关环境变量添加进去,保存即可。
在pycharm文件下面的bin目录下,添加LD_LIBRARY_PATH=/usr/local/cuda/lib64
windows下直接修改环境变量就可以。
2、使用远程连接的方式使用服务器
方法挺多的,主要说两种,根本就在于要让pycharm找到cuda的位置
2.1直接修改pycharm配置,点击pycharm的Run->Edit Configurations
点击红框的位置
点击加号添加新的环境变量,LD_LIBRARY_PATH=/usr/local/cuda/lib64
2.2直接创建动态链接库
用xshell远程连接服务器
ldconfig /usr/local/cuda/lib64
创建链接的方式也有很多,就说这一种吧,具体可以百度查一下动态链接库的知识。