Ubuntu NVIDIA+cuda+cudnn+anaconda搭建深度学习环境

介绍

本文包括以下几个部分的安装和使用,一条龙搭建深度学习环境,记录下来以加快下次装机效率。

  • Ubuntu
  • NVIDIA+CUDA+CUDNN
  • Anaconda

Ubuntu系统安装

制作u盘启动盘

下载Multi Boot USB软件
下载ubuntu系统iso镜像,地址:官网中科大阿里云兰州大学北京理工大学浙江大学
原理是把一个iso系统,写入到u盘,在电脑开机的时候,通过u盘的系统来启动。需要
准备一个U盘,如果里面有东西,先拷出来备份。将U盘格式化为FAT32格式。

运行Multi Boot USB软件。
select USB disk是选择目标U盘,等会使用该U盘进行启动。
Select image是选择镜像文件,安装该镜像到系统中。
下面选MultiBootUSB即可,Persistence不用动。点Install distro,等待写入完成即可。

安装系统

开机时需要选择boot启动项,要选择引导带有USB、UEFI字样的启动项。想打开选择boot启动项的界面,笔记本一般按F2,台式机一般按F8和F9,del和F12也有可能会使用,不同的电脑不一样。可以把F1-12顺着按一遍。。。。。

进入到安装界面之后,断网操作,如果联网就会拉慢安装进度,会安装语言包等不需要的东西。

进入到安装类型这里,选其他类型,需要分区。
EFI分2G,Swap=内存大小,Ext4分200-500G。
EFI是系统引导的部分,一般只会用到几百M;Swap是当内存不够时,操作系统会将硬盘当虚拟内存使用,所以在0.5-2倍内存都可以;Ext4挂在根目录/上;如果还有多于的空间,以后可以灵活挂在home上,或者装其他系统,灵活处理。
后面直接下一步安装就可以了。

然后会遇到一个用户和密码设置,这里可以创建一个自己的初始用户。

安装完成

安装完成后先把root用户密码改一下,打开terminal:sudo passwd,先输入自己的密码,然后输入想要设置的root密码。

我安装笔记本时,装好了但是wifi不能用,应该是什么网卡驱动没装的原因,这里给出几个蠢方法解决。

  1. 先连上网线,让电脑有网。然后运行两个命令就可以了。
    sudo apt-get update
    sudo apt-get install --reinstall bcmwl-kernel-source
    查看网卡lspci
    官网对应解决方案
  2. sudo service network-manager restart
  3. 蠢方法2

NVIDIA+CUDA+CUDNN 参考

NVIDIA是显卡驱动,CUDA是并行运算平台,CUDNN是神经网络平台。
查看显卡型号:
lspci |grep VGA
lspci | grep -i nvidia

下载

先给出3个网址,需要下载,CUDA和CUDNN版本要保持一致。
NVIDIA GeForce驱动
NVIDIA Tesla驱动
CUDA
CUDNN 在Ubuntu安装CUDNN要下载runtime,developer,doc and sample一共3个文件。
下载完毕后,sh文件需要加上运行权限sudo chmod a+x 文件名

NVIDIA安装

卸载原有驱动

# 如果之前是用apt-get安装
sudo apt-get remove --purge nvidia*
# 如果之前是用runfile文件安装
sudo chmod +x *.run
sudo ./原来安装的文件名 --uninstall

禁用服务
sudo gedit /etc/modprobe.d/blacklist.conf
文本最后加上
blacklist nouveau
options nouveau modeset=0
更新
sudo update-initramfs -u

因为显卡需要控制显示在屏幕上的图像,所以如果图形界面处于占用状态,安装驱动是必然会失败的。关闭X-Window服务。
sudo service lightdm stop
可以重启一下
reboot
安装
sudo ./文件名
如果重启之后还不行,用sudo init 3,再安装。
验证方法:nvidia-smi

CUDA

sudo ./文件名
几个重要的选项

accept #同意安装
n # 不安装驱动,已经安装最新驱动
y # 安装CUDA Toolkit
<Enter> #安装到默认目录
y # 创建安装目录的软链接
n # 不复制Samples

验证方法:nvcc -V

CUDNN

# 安装
sudo dpkg -i runtime文件
sudo dpkg -i developer文件
sudo dpkg -i doc文件

# 验证方法
cp -r /usr/src/cudnn_samples_v7/ /home/wdong/
cd /home/wdong/cudnn_samples_v7/mnistCUDNN
make clean && make
./mnistCUDNN

# 如果成功安装会显示
Test passed!

Anaconda搭建环境

在装包的时候发现权限有问题,运行下面的指令,将yourname换成自己的用户名。
sudo chown -R yourname:yourname /home/marley/anaconda3

各个深度学习框架的安装方法

注:下面带有超链接的是需要点进去,选择对应自己系统和环境的版本进行安装。

  • pytorch
    conda install pytorch torchvision cudatoolkit=10.0 -c pytorch
    这里cudatoolkit=10.0可以直接在10.1的环境下使用,无需更改。
    如果发现速度很慢,删掉后面的 -c pytorch,并使用命令
    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
  • tensorflow
    conda install tensorflow-gpu
  • mxnet
    pip install mxnet-cu101
  • keras
    conda install keras

测试是否可以使用gpu

运行下面的代码,并使用nvidia-smi -l 2监测gpu的占用,如果在程序运行期间发生了GPU占用,则说明可以正常使用。

  • pytorch
# -*- coding: UTF-8 -*-

import torch
from torch.autograd import Variable

# 将变量或者数据移到GPU
gpu_info = Variable(torch.randn(3,3)).cuda()
# 将变量或者数据移到CPU
cpu_info = gpu_info.cpu()
  • tensorflow and keras
import tensorflow as tf
from tensorflow import keras
import numpy as np
import os

# os.environ["CUDA_VISIBLE_DEVICES"] = ""

fashion_mnist = keras.datasets.fashion_mnist
(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()

model = keras.Sequential([
    keras.layers.Flatten(input_shape=(28, 28)),
    keras.layers.Dense(128, activation=tf.nn.relu),
    keras.layers.Dense(10, activation=tf.nn.softmax)
])

model.summary()

model.compile(optimizer=tf.train.AdamOptimizer(),
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

model.fit(train_images, train_labels, epochs=10)
  • mxnet
import mxnet as mx
from mxnet import nd
from mxnet.gluon import nn
for i in range(10):
    b = nd.random.uniform(shape=(10000, 10000), ctx=mx.gpu(0))
print(b)
print(mx.cpu(), mx.gpu(), mx.gpu(0))

其他包的安装

  • opencv
    pip install opencv-python或者pip install opencv-python==3.4.5.20
  • dlib人脸识别库
    以下几个东西要先装好,再能装dlib,不然报错。
    distro:pip install distro
    cmake:sudo apt-get install cmake
    然后执行dlib的安装命令,其中会用到cmake编译源码,所以要花一点时间:
    pip install dlib
    装完了打开python运行import dlib,不报错则成功。
  • tensorboardX
    pip install tensorboardX
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342