Ubuntu16.04基于anaconda3 安装cuda9.0+cudnn7.5+pytorch1.1及遇到的问题解答

  • 安装cuda9.0
  • 安装cudnn7.5
  • 安装 pytorch1.1(建议基于conda来 装)
  • Errors
  • 快捷键 tips

1、安装cuda9.0
方法1:安装cuda9.0

  • 卸载原来的cuda

在Ubuntu16.04下安装CUDA的过程并不简单,小白即使看着官方文档也很容易出错,比如说安装CUDA8.0(在线安装)时,对着文档一步步安装下来都没有问题,在最后一条指令执行时:

  • sudo apt-get install cuda

你可能会猛然发现终端上显示安装的愕然都是CUDA10.0(也就是最新版本),等到安装结束,你再仔细一看,还确实是安装了10.0。于是就开始抓头自问“不对呀,我明明是照着文档安装下来的呀,怎么就变成10.0的了?!”
原来是安装CUDA的时候,版本自动帮你替换成了最新版(该怎么说呢?!!真是谢谢您了lol)。
解决办法,在上面那条指令后面加上版本号,完整指令就是(以安装CUDA9.0为例子):
sudo apt-get install cuda-9.0

  • 完美安装CUDA9.0

下面回归正题:
卸载方法(图1)

  • 打开终端,输入以下指令

sudo apt-get remove cuda
sudo apt autoremove
sudo apt-get remove cuda*

  • 然后将终端运行目录切换到/usr/local/下

cd /usr/local/

  • 输入dir指令:

dir

可能会看到一个"cuda"或者“cuda-10.0”文件夹,再或者两者都有。
输入指令删除残留的文件夹(以下指令以删除“cuda-10.0”文件夹为例)

sudo rm -r cuda-10.0
在这里插入图片描述
图1

方法2:安装cuda9.0

  • cudatoolkit下载网址:
    https://developer.nvidia.com/cuda-90-download-archive?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1604&target_type=runfilelocal

  • 选择版本:
    NVIDIA-Linux-x86_64-410.73.run => cudatoolkit

  • cuda下载网址:
    https://conda.anaconda.org/pytorch/linux-64
    见图2(!!!注意除了不安装驱动,其他都yes!!!)

在这里插入图片描述在这里插入图片描述
图2

  • 查看cuda版本1:nvcc --version
    见图3
    在这里插入图片描述 图3

  • 查看cuda版本2: cat /usr/local/cuda/version.txt
    见图4
    在这里插入图片描述 图4

2、安装cudnn 7.5

  • 首先下载 cudnn7 下载路径,适合自己cuda的版本(下载 cudnn7 需要登陆 NVIDIA ,没有 NVIDIA 账号的注册一个就行了。)下载 tgz 压缩文件。我选择的是cuda9.0 cudnn7.5.0 中的 cudnn library for Linux文件。见下图5

网站:
https://developer.nvidia.com/rdp/cudnn-archive

在这里插入图片描述
在这里插入图片描述图5

  • 首先解压 tgz 压缩文件:
  • 接着复制文件到 cuda 路径下:

$ sudo cp cuda/include/cudnn.h /usr/local/cuda/include
$ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
$ sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

  • 复制完成然后使用命令,可以看到输出相应的 cuda 和 cudnn 的版本信息

$ nvcc -V
在这里插入图片描述

  • 查看cudnn版本:

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
在这里插入图片描述

3、pytorch & torchvision
https://pytorch.org/
pytorch

  • 下载对应的 pytorch & torchvision
  • 下载对应的 pytorch & torchvision 的 网站:

https://conda.anaconda.org/pytorch/linux-64

注:版本一定要与电脑中的cuda版本对应

在这里插入图片描述
在这里插入图片描述以上下载完了之后,我发现我并没有讲pytorch安装在python3.6下,而是安装在了python3.5下。后来我又卸载了,用conda创建了python3.6的环境来安装的。

  • conda install yaml # 否则 在mmdection 的python setup.py install 会有 fatal error

  • 用conda创建自己的虚拟环境,这样就不会出现安装串位。
    conda create -n mmdetection python=3.6

  • 激活环境
    source activate mmdetection

  • 安装PyTorch 1.1
    conda install pytorch=1.1.0 torchvision cudatoolkit=9.0 -c pytorch
    在这里插入图片描述因为没有镜像源,所以,用外源下载的有点慢。。。

  • 安装好以后,进入Python环境,输入以下代码测试是否安装成功,不报错则说明安装成功

import torch
import torchvision
print(torch.version)#输出PyTorch版本
在这里插入图片描述4、Errors:

  • error1:

在这里插入图片描述
解决方法:
cd /home/njaudata/.local/lib/python3.6/site-packages/torch/ 目录下打开终端 ls

发现 _C.cpython-36m-x86_64-linux-gnu.so, _dl.cpython-36m-x86_64-linux-gnu.so两个so文件的文件名都太长了,需要进行修改。

采用cp 的方式复制两个文件:

/usr/local/lib/python3.5/dist-packages/torch/$ sudo cp _C.cpython-36m-x86_64-linux-gnu.so _C.so
/usr/local/lib/python3.5/dist-packages/torch/$ sudo cp _dl.cpython-36m-x86_64-linux-gnu.so _dl.so

结束后出现下图
在这里插入图片描述
https://blog.csdn.net/sparkexpert/article/details/77675581?locationNum=7&fps=1
这个博主写的很好。

  • error2:
    libmkl_intel_lp64.so: cannot open shared object file: No such file or directory
    在这里插入图片描述

libmkl_intel_lp64.so是一个动态链接库文件,系统找不到。
解决方法:

  • 搜索该文件路径
    $ sudo find /home -name libmkl_intel_lp64.so
    在这里插入图片描述
    如果这个文件确实存在,就会显示它的路径,如:/home/xxx/anaconda3/lib/libmkl_intel_lp64.so
  • 将上一步搜索出来的路径添加到环境变量
    先打开当前用户环境变量配置文件bashrc
    $ sudo gedit ./.bashrc
  • 在最后面添加一行:
    export LD_LIBRARY_PATH=/home/xxx/anaconda3/lib:$LD_LIBRARY_PATH

注:路径就是上一步搜索出来的路径。

  • 更新环境变量配置文件并显示
    $ source ./.bashrc
    $ echo $LD_LIBRARY_PATH
    注:如果更新不了的话,此处需要重起。

  • error3:
    ModuleNotFoundError: No module named ‘numpy.core._multiarray_umath’
    在这里插入图片描述numpy是一个基础的数组计算包,pytorch、Tensorflow、 tensorboard、Keras-Preprocessing、h5py、pandas等一系列常用的第三方库都需要numpy的支持。这里提示numpy.core._multiarray_umath failed to import和numpy.core.umath failed to import ,得知无法正常import tensorflow 的原因是numpy库的引用出了问题。

解决方法:

  • 方法1:
    pip install --user --upgrade numpy #将numpy更新到最新版本

  • 方法2:
    :1、 pip install --upgrade --force-reinstall numpy1.14.5 #重新安装合适的numpy版本
    or
    2、pip install numpy
    1.16
    亲测1.14.5版本和1.16版本的numpy可以fix这个error。

5、 快捷键 tips:

  • conda虚拟环境:
    conda create -n envname conda

  • 激活虚拟环境:
    source activate envname conda

  • 退出虚拟环境:
    source deactivate conda

  • 列出所有虚拟环境:
    conda env list conda

  • 克隆虚拟环境:
    conda create -n envname --clone evnname1 conda

  • 删除虚拟环境:
    conda remove -n envname --all conda

  • 虚拟环境安装包:
    conda install -n envname package,
    例如:conda install -n envnam

  • 查看python版本

方法一:
  python -V

注意:‘-V‘中‘V’为大写字母,只有一个‘-’

方法二:
  python --version  
  注意:‘–version’中有两个‘-’

  • 查看python安装位置
    方法一: 
      python -c “import sys; print sys.executable”
    方法二:
      python -c “import os; print os.sys.executable”
      python -c “import os; path = os.sys.executable;folder=path[0 : path.rfind(os.sep)]; print folder”

  • 查看Numpy版本
    python -c “import numpy; print numpy.version.version”

    python -c “import numpy; print numpy.version

  • 查看Numpy安装路径
    python -c “import numpy; print numpy.file

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值