Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。
其实问题也不大,但是充分反映了需要仔细阅读错误代码,才能快速准确的解决问题。
系统环境:Ubuntu16.04 + GTX1060
目的:配置一下Python-tensorflow环境
问题复现:
使用设置/软件与更新/附件驱动 安装nvidia-375
使用CUDA-8.0*.run安装CUDA
使用cudnn*.tgz安装cudnn5.1
PATH里面加入了/usr/local/cuda-8.0/bin
LD_LIBRARY_PATH里面加入了/usr/local/cuda-8.0/lib64和cudnn_dir/cuda/lib64
使用pip3 install tensorflow-gpu安装tensorflow
问题描述:
进入python3,然后import tensorflow,无法import,错误代码:libcudnn.so.6:cannot open sharedobject file: No such file or directory
问题解决:
pip uninstall tensorflow-gpu
pip install tensorflow-gpu==1.2
问题解释:
根据错误代码,应该是找不到libcudnn.so.6。这个时候笔者就没有注意最后是6而不是5,就开始各种试路径啊,硬链接软链接啥的。实质上是因为当前时间(2017.8),虽然tensorflow官网install教程里面说的是安装cudnn5.1,而tensorflow-gpu1.3已经开始去找cudnn6了(也就是说是用cudnn6编译的)。理论上可以安装cudnn6试试看,但笔者本身没有追逐最新版的习惯,所以直接换到了tensorflow-gpu1.2版本,就解决问题了。
另注:通常情况下这类问题是真的找不到文件,而不是找错文件。这个时候笔者通常会先查一下各种路径有没有设置错误(写错啊,路径之间的冒号啊),然后去指定路径看看有没有这个文件,最后去查一下链接问题(这个就有些复杂了,而且改动起来有风险,建议备份先)。