NVIDIA\CUDA\cuDNN环境安装(解决循环登录问题)和Anaconda安装使用

关于Ubuntu显卡驱动的安装-解决循环登录\挂载\卸载问题

由于AC自己本人刚开始在实验室使用ubuntu系统时,电脑自带多张显卡 配置有点问题,导致循环登录—-噩梦般的两天未果,隧重装.

AC的显卡驱动安装过程以及一些操作再次记录下来,以飨后来者.

NVIDIA显卡驱动安装

禁用 nouveau 驱动(nouveau是 ubuntu16.04 默认安装的第三方开源驱动,安装cuda会跟nouveau冲突,需要先禁用)

  • 先查看 nouveau 是否被禁用,输入以下命令,若有输出,则说明 nouveau 在运行中

lsmod | grep nouveau

  • 修改 /etc/modprobe.d/blacklist.conf 文件

sudo vim /etc/modprobe.d/blacklist.conf

在末尾加入

blacklist nouveau options nouveau modeset=0

  • 执行以下命令,并重启

sudo update-initramfs –u

  • 再执行以下命令,查看 nouveau 是否已被禁用,若无任何输出,说明禁用成功

lsmod | grep nouveau

官网下载驱动

在英伟达的官网上查找你自己电脑的显卡型号然后下载相应的驱动。网址:http://www.nvidia.cn/page/home.html

我下载的版本:NVIDIA-Linux-x86_64-418.56.run(注意不同的版本最后安装执行的具体选项不同)

下载后的run文件拷贝至home目录下。

进入命令行界面

在ubuntu下按ctrl+alt+f1进入命令行界面,

然后在命令行界面下输入:

sudo service lightdm stop

//这个是关闭图形界面,不执行会出错。

然后卸载掉原有驱动:

sudo apt-get remove nvidia-*

(若安装过其他版本或其他方式安装过驱动执行此项)

安装驱动

  • 给驱动run文件赋予执行权限:

sudo chmod a+x NVIDIA-Linux-x86_64-396.18.run

  • 安装:

sudo ./NVIDIA-Linux-x86_64-396.18.run -no-x-check -no-nouveau-check -no-opengl-files

//只有禁用opengl这样安装才不会出现循环登陆的问题

-no-x-check:安装驱动时关闭X服务

-no-nouveau-check:安装驱动时禁用nouveau

-no-opengl-files:只安装驱动文件,不安装OpenGL文件

  • 安装过程中的选项:(这是copy别人的,自己的没记住,我也是尝试选择了好多遍才安装好)

The distribution-provided pre-install script failed! Are you sure you want to continue? 选择 yes 继续。
Would you like to register the kernel module souces with DKMS? This will allow DKMS to automatically build a new module, if you install a different kernel later? 选择 No 继续。
问题没记住,选项是:install without signing
问题大概是:Nvidia’s 32-bit compatibility libraries? 选择 No 继续。
Would you like to run the nvidia-xconfigutility to automatically update your x configuration so that the NVIDIA x driver will be used when you restart x? Any pre-existing x confile will be backed up. 选择 Yes 继续

这些选项如果选择错误可能会导致安装失败,没关系,只要前面不出错,多尝试几次就好。

挂在驱动\测试显示驱动

  • 挂载Nvidia驱动:

modprobe nvidia

  • 检查驱动是否安装成功:

nvidia-smi

其他操作

Ubuntu 16.04 安装 CUDA10.1(解决循环登陆的问题)
Ubuntu16.04系统run方式安装nvidia显卡驱动

注意:

  • 我是在 Intel 集显驱动下面进行的安装,即当前图形化界面是用 Intel 集显,准备只用NVIDIA 独显做计算,所以用 —no-opengl-libs 选项设为不安装 OpenGL 的库;之前 cuda 版本的安装好像是以命令行交互的方式让你选择是否选择安装 OpenGL,但在 cuda10.1 这个版本,只能通过添加命令行参数的方法来选择不安装 OpenGL;

  • 若不小心安装了 OpenGL,则后面会遇到循环登陆的问题,原因就是 NVIDIA显卡 的 OpenGL 库覆盖了当前 Intel 显卡的库,解决办法是再登入到文本命令行模式,用以下命令先卸载 cuda 和 NVIDIA驱动,再按正确的步骤重新安装

sudo /usr/local/cuda-10.1/bin/cuda-uninstaller

sudo /usr/bin/nvidia-uninstall

挂载驱动

  • 挂载Nvidia驱动:

modprobe nvidia

  • 检查驱动是否安装成功:

nvidia-smi

关闭图形化界面-进入文本命令行模式

  • 文本命令行模式运行 runfile 文件安装CUDA

  • 按 Ctrl + Alt + F1 键进入文本命令行模式,输入用户名和密码

先关闭图形化界面:
sudo service lightdm stop

其它环境安装

CUDA

cuDNN 库文件下载拷贝

Anaconda下载

Anaconda安装

网上有许多安装tensorflow的方法,什么源码安装、pip安装等等,折腾了半天,把自己搞晕了也没安装成功,笔者最后采用conda安装,简单方便之极!!!

1、创建虚拟环境:(至于为什么要用虚拟环境,以后大家就明白了,它可以让我们在虚拟环境里为所欲为而不影响外部配置,现在照做就是了)

conda create -n tf

2、激活虚拟环境:(就是进入到这个虚拟环境里面)

source activate tf

PS:如果要退出:输入

source deactivate tf

3、下面我们在虚拟环境里安装tensorflow:

激活虚拟环境后,我们开始用conda安装吧!

1) 先确定自己要安装的tensorflow的版本是CPU的还是GPU的,如何确定呢?

如果你还不知道GPU是啥,那你计算机里肯定没有安装cuda、cudnn 、显卡那些东西,那就安装CPU版本;

如果你之前折腾过cuda安装,那你肯定明白自己要用GPU版本的,不过前提当然是你确定你已经将cuda装好了哈哈哈,不禁笑 了,因为笔者也被cuda折磨过;

2)安装CPU版本:

conda install tensorflow

3)安装GPU版本:

conda install tensorflow-gpu

4)漫长的等待后,看看自己是否安装成功:

在python下导入tensorflow试试:(不报错就成功啦)

import tensorflow as tf

至此,安装配置完成!如果你计算机有块不错的显卡,还是用GPU吧。

欢迎交流,谢谢指正!

Anaconda操作

环境添加

强烈建议默认即可,
按enter继续下一步,注意这里按ctrl + c 直接会终止安装。
接下来先等待安装即可。
看到Thank you for installing Anaconda3! 表示安装成功。
anaconda会自动将环境变量添加到PATH里面,如果后面你发现输出conda
提示没有该命令,那么你需要source ~/.bashrc 这样就是更新环境变量,就可以正常使用了。
如果发现这样还是没用,那么需要收到添加环境变量
编辑~/.basrc 文件,在最后面加上

export PATH=/home/aeasringnar/anaconda3/bin:$PATH

保存退出后:source ~/.bashrc
再次输入conda list测试看看,应该就是没有问题啦!

然后安装会提示Do you wish to proceed with the installation of Microsoft VSCode? (是否需要安装vscode)
这里根据自己的选择yes or no
然后就可以享用anaconda了!

conda命令的使用

写在前面,conda默认的虚拟环境目录为:~/anaconda3/envs

1、查看conda 版本

1
conda --version

2、更新conda 以及 设置国内镜像

  • 更新conda

    1
    2
    3
    conda update conda
    conda update anaconda
    conda update anaconda-navigator
  • 设置国内镜像
    添加源

    1
    2
    3
    4
    5
    # 清华源:
    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
    conda config --set show_channel_urls yes

查看源列表

1
conda config --show channels

删除镜像源

1
2
conda config --remove channels [源地址]
conda config --remove-key channels 删除所有源地址

3、查看conda帮助

1
2
3
conda --help
#
conda -h

4、新建虚拟环境

1
2
conda create --name <env_name> <package_names>
# eg: conda create -n python27 python=2.7

注意:

  • 即创建的环境名。建议以英文命名,且不加空格,名称两边不加尖括号“<>”。

  • 即安装在环境中的包名。名称两边不加尖括号“<>”。

  • 如果要安装指定的版本号,则只需要在包名后面以=和版本号的形式执行。如:conda create –name python2 python=2.7,即创建一个名为“python2”的环境,环境中安装版本为2.7的python。

  • 如果要在新创建的环境中创建多个包,则直接在后以空格隔开,添加多个包名即可。如:conda create -n conda-test python=3.6 numpy pandas,即创建一个名为“conda-test ”的环境,环境中安装版本为3.6的python,同时也安装了numpy和pandas。

  • –name同样可以替换为-n。

5、切换conda环境

1
source activate env_name

6、退出虚拟环境

1
source deactivate

7、显示安装过的所有虚拟环境

1
2
3
4
5
conda info --envs
#
conda info -e
#
conda env list

查看环境

8、复制环境

1
conda create --name new_env_name --clone copied_env_name

注意:

  • copied_env_name即为被复制/克隆环境名。

  • new_env_name即为复制之后新环境的名称。

  • 其它:导出环境:
    conda env export > env.yaml
    conda env create -n new_env -f env.yaml
    pip freeze > requirements.txt
    pip install -r requirements.txt

9、删除环境

1
conda remove --name env_name --all

10、包管理

  • 精确查找包
1
conda search --full-name 查找的包名
  • 模糊查找包
1
conda search 查找的内容
  • 获取当前环境中已安装的包信息
1
conda list
  • 指定环境安装包
1
conda install --name 环境名 要安装的包名

注意:

  1. 要指定版本时
1
conda install --name conda-test django=2.0.6

表示在conda-test环境中安装 django并制定版本为2.0.6

  1. 在当前环境中安装包
1
conda install <要安装的包名>
  1. 最后,如果conda安装不上的包,或者没有的包,可以使用pip安装(对应版本下载下来安装也可以)
1
pip install <安装的包名>
  • 指定channel安装
1
conda install --channel https:...
  • 更新安装包
1
2
3
conda update packagename=x.x.x 
# 或者
conda update packagename
  • 移除包
1
conda remove packagename
(っ•̀ω•́)っ✎⁾⁾ 坚持技术学习、内容输出与分享,您的支持将鼓励我继续创作!(*/ω\*)
( • ̀ω•́ )✧如有疑问或需要技术讨论,请留言或发邮件到 aclearzhang@qq.com.(*・ω< )