硬件配置:处理器I7,内存16G,独立显卡RTX2060
(PS:独立显卡并不是必须的,tensorflow也能运行CPU版本,但是速度确实差强人意。推荐还是最少配备一块显卡)
已装系统:Windows 10
目标:在Win10基础上安装Ubuntu双系统,并在Ubuntu中搭建深度学习开发环境
如果不使用显卡(GPU),配置好的电脑可以装虚拟机,虚拟机更方便安全。但是虚拟机中不能使用物理显卡,所以有调用GPU加速需求的一定要慎装虚拟机。
目录
第一步:装双系统
第二步:准备工作
第三步:安装Anaconda3
第四步:安装显卡驱动(不包含CUDA)
第五步:安装CUDA10.1
第六步:安装cuDNN
第七步:安装 tensorflow
第八步:tensorflow测试
第九步:牛刀小试tensorflow2.1
附录1:安装pytorch
附录2:安装Opencv
附录3:安装MATLAB
附录4:安装pycharm
附录5:一些常用指令
第一步:装双系统
1、教程参考:
我装过很多次双系统,这个教程是我看过写得最全面的,按照教程来做99.9%都能成功安装。注意安全模式要关闭!!!
Ubuntu18.04镜像下载地址:
2、UEFI方式装好系统后,重启是无法直接进入Ubuntu系统。拔掉U盘,我是开机按F12选择进入Ubuntu系统的(不同的电脑键位不一样,就是开机选择从U盘启动那个按键)
3、设置开机选择Windows10或Ubuntu启动
Ctrl+Alt+T打开终端运行如下代码:
sudo update-grub
sudo grub-install /dev/nvme0v1
(这里的nvme0v1是指安装了Ubuntu的硬盘-不是分区号, 不知道的可以sudo fdisk -l,查看一下)
4、重启,选择系统进入
第二步:准备工作
1、进入Ubuntu后啥都不要做,首先更换国内镜像源,否者下载或更新内容会浪费大量的时间。
找到如图所示的软件和更新,我的版本安装之后就是中文界面,其他版本如果是英文也不要立即就去切换语言,否则会浪费大量的时间。
打开软件和更新选择镜像源(推荐清华的镜像源,速度很快的)
镜像源设置好后就可以配置你的Ubuntu环境了,换语言等等。
2、安装更新
sudo apt update
sudo apt upgrade
3、安装chrome,搜狗拼音等必要的deb软件包
sudo dpkg -i 软件.deb
4、修复安装(或添加依赖关系)
sudo apt-get -f install
每装完一个软件后就修复一下,避免出错。
5、确定需要的Python、显卡驱动、CUDA、cuDNN及tensorflow的版本。非常重要,非常重要,非常重要!!!!!!!
先说一下它们之间的关系,Python是我们的开发语言。显卡驱动就是我们使用显卡所需要的驱动。CUDA是我们使用显卡做数据运算所需要的工具平台。cuDNN是我们使用显卡做神经网络运算所需要的库文件。tensorflow使我们使用神经网络的库包。
换言之,显卡驱动就是让GPU可以动起来,但不一定用作数据运算,可能用于3D图像显示,渲染等。加上CUDA之后GPU就能够做数据运算了。加上cuDNN之后GPU就能够进行深度学习方面的数据运算了。
这几个软件的版本是相互依赖的,必须兼容,我们从显卡出发来确定所有需要软件的版本。
(1)显卡:GeFore RTX2060对应的驱动查询
https://www.nvidia.com/Download/index.aspx?lang=en-us#
查询结果,RTX2060可以支持的的最新版驱动为440.64,注意这不代表我们就需要装最新版的驱动。
(2)查询CUDA的版本支持
Release Notes :: CUDA Toolkit Documentation
可以看到显卡驱动440.64版本驱动支持最新版本 CUDA10.2.89,这也不代表我们就能装最新的CUDA。
(3)查询cuDNN的版本
cuDNN Archive | NVIDIA Developer
可以看到cuDNN最高只支持CUDA10.1版本,所以我们不能安装CUDA10.2。
(4)tensorflow的版本查询
tensorflow1.x.x安装
根据tensorflow的需求安装Python、CUDA和cuDNN即可。注意如果(2)和(3)步骤中支持的CUDA和cuDNN版本低于下表,则不能安装。
tensorflow2.x.x安装
由上表可知,tensorflow1.13的CUDA需求版本已经为CUDA10.0。所以tensorflow2.x.x的CUDA版本不得低于10.0。
参考官方文档tensorflow2.x.x的CUDA版本对应如下
tensorflow2.0.x Python 2.7/3.3-3.7 CUDA10.0
tensorflow2.1.x Python 2.7/3.3-3.7 CUDA10.1
暂时tensorflow2.1为最新版本。
综上所述,我们选择安装的最新版本环境为:tensorflow2.1、Python 3.7、CUDA10.1和cuDNN7.6.4。
第三步:安装Anaconda3
anaconda的作用是安装Python及Python一些相关的依赖库。所以anaconda比单独安装Python更好用。
1、anaconda3镜像下载地址:
Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
下载最新版,最新版支持Python3.7。
2、打开终端安装anaconda3
bash Anaconda3-5.3.1-Linux-x86_64.sh
最后会提示你是否安装VScode,选择否 ,VScode没啥用。其他的都选择yes。
3、安装完成后重启终端,输入如下指令,查看anaconda是否安装成功
python --version
conda --version
第四步:安装显卡驱动(不包含CUDA)
显卡驱动和CUDA是可以同时安装的。后面会提及,一起安装容易出错,这里选择分开安装。
网上有很多终端指令的安装方法,这里我们用的是可视化安装方法来安装,更方便。
1、打开软件和更新选择附加驱动,系统会自动搜索稳定的驱动,选择一个nvidia的驱动安装就好。
2、安装完成后重启,然后打开终端运行nvidia-smi就能看到显卡信息
从图中我们可以看出我们安装的显卡驱动版本为430.50,此时CUDA10.1还没有安装,这个是不能搞错的。
第五步:安装CUDA10.1
1、下载CUDA Toolkit 10.1,没有update那一个
CUDA Toolkit Archive | NVIDIA Developer
2、终端运行安装gcc
sudo apt install gcc
3、安装CUDA
sudo sh cuda_10.1.105_418.39_linux.run
4、 accept
5、去掉第一个显卡驱动,因为我们在上一步骤已经安装过了更高版本的显卡驱动
6、安装完成,有一个warning说我们没有安装显卡驱动,事实上我们已经装过,不用管它。(至于为什么要分开安装,因为一起安装会出错)
7、添加环境变量
export PATH=/usr/local/cuda-10.1/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64:$LD_LIBRARY_PATH
第六步:安装cuDNN
1、简单介绍一下显卡驱动、CUDA和cuDNN的关系。
CUDA相当于一个数据运算库。但是显卡驱动不单单是用来做数据运算的,当我们要用来做数据运算时才调用CUDA。
cuDNN是用于深度神经网络计算的,相当于更小一个级别的库。
当我们要进行神经网络计算时,首先需要显卡驱动,其次它属于数据运算,所以需要CUDA,最后它还需要一个神经网络专用的支持库cuDNN。
2、cuDNN下载网站:
cuDNN Archive | NVIDIA Developer
下载其中对应CUDA10.1的任意一个版本。我们选择最新的7.6.4版本。
3、下载Ubuntu18.04对应的CUDNN安装包
需要先注册,下载Ubuntu18.04对应的那三个安装包
4、安装cuDNN
打开终端,进入安装包所在路径运行:
sudo dpkg -i libcudnn7_7.6.4.38-1+cuda10.1_amd64.deb
sudo dpkg -i libcudnn7-dev_7.6.4.38-1+cuda10.1_amd64.deb
sudo dpkg -i libcudnn7-doc_7.6.4.38-1+cuda10.1_amd64.deb
5、cuDNN安装结束
为了装多版本CUDA方便,推荐使用以下方法安装cuDNN安装方法
下载压缩包:
解压文件
tar -xzvf cudnn-10.0-linux-x64-v7.6.4.38.tgz
拷贝文件到CUDA路径
sudo cp cuda/include/cudnn.h /usr/local/cuda-10.0/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-10.0/lib64/
sudo chmod a+r /usr/local/cuda-10.0/include/cudnn.h
sudo chmod a+r /usr/local/cuda-10.0/lib64/libcudnn*
第七步:安装 tensorflow
有四种安装方法:推荐第三种,我用的也是第三种
1、安装方法(一):在anaconda图形化界面中安装
打开终端运行anaconda
anaconda-navigator
在environments中找到tensorflow和tensorflow-gpu安装(前者基于CPU,后者基于GPU,可以都安装)。
2、安装方法(二): 使用指令安装
打开终端运行
python -m pip install --upgrade pip
pip install tensorflow-gpu
第一行更新pip,第二行用pip安装tensorflow
3、安装方法(三):使用清华tensorflow镜像安装(这种方法最快最方便)
1)打开终端升级pip
python -m pip install --upgrade pip
pip install --ignore-installed PyHamcrest
2)安装tensorflow2.1.0
pip install tensorflow-gpu==2.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
其中2.1是我需要安装tensorflow的版本号,这个一定要注意,不能出错。
tensorflow各个版本需要的CUDA版本以及Cudnn的对应关系:
https://www.tensorflow.org/install/install_sources#common_installation_problems
官方推荐我的CUDA10.1对应的tensorflow版本必须大于2.1.0,因此我选择安装版本tensorflow2.1.0。
3)安装过程应该会出现错误
安装过程可能会缺少库或者升级库,用如下指令安装即可:
pip install --ignore-installed XXXXXXX
再重复执行第2)步的过程,直到没有错误为止。
4、安装方法(四):先在网页中下载,然后再离线安装。
离线安装包镜像下载地址:
https://pypi.tuna.tsinghua.edu.cn/simple/tensorflow/
第八步:tensorflow测试
1、打开Spyder,Spyder是在安装anaconda时附加安装的Python编译环境。不喜欢Spyder的可以安装Pycharm来运行python代码。
2、在Spyder输入如下指令
import tensorflow as tf
print(tf.test.is_gpu_available())
输出为true,说明我们的tensorflow-gpu安装成功了
第九步:牛刀小试tensorflow2.1
手写字体识别代码,新建.py文件,运行即可
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Fri Mar 6 20:43:29 2020
@author: ubuntu
"""
#输入tensorflow包
import tensorflow as tf
#输入matplotlib作图包
import matplotlib.pyplot as plt
#定义显示函数
def plot_image(image):
fig=plt.gcf() #图表生成
fig.set_size_inches(3,3) #设置图表大小
plt.imshow(image,cmap='binary') #以黑白灰度显示图片
plt.show() #开始绘图
#定义带标签的显示函数
def plot_image_labels_prediction(image,labels,prediction):
fig = plt.gcf()
fig.set_size_inches(3,3) #设置图表大小
ax1 = fig.add_subplot(1, 1, 1)
title = 'label=' + str(labels) #定义title方便图像结果对应
title += ' prediction='+ str(prediction)
ax1.imshow(image,cmap='binary') #以黑白灰度显示图片
ax1.set_title(title,fontsize=10) #设置图像title
ax1.set_xticks([]) #无x刻度
ax1.set_yticks([]) #无y刻度
plt.show()
#下载mnist数据集
mnist = tf.keras.datasets.mnist
#载入mnist数据样本
(x_train, y_train), (x_test, y_test) = mnist.load_data()
#显示一张训练样本图像
plot_image(x_train[0])
#将样本转化为浮点型
x_train, x_test = x_train / 255.0, x_test / 255.0
#设置神经网络各层
model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(10, activation='softmax')
])
#设置损失函数
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
#训练
model.fit(x_train, y_train, epochs=5)
#测试整个测试集
model.evaluate(x_test, y_test, verbose=2)
#进行分类
prediction=model.predict_classes(x_test)
#可视化第一百张测试序列的分类结果
plot_image_labels_prediction(x_test[100],y_test[100],prediction[100])
运行结果:
附录1:安装pytorch
1、官网下载地址:
conda和pip安装都行,直接copy指令到终端中运行即可安装。
由于官网指令安装太慢了,可以用离线安装的方法。
2、 各个版本离线下载
下载地址:
Index of /anaconda/cloud/pytorch/linux-64/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
我们用的CUDA10.1,Python3.7,cudnn7.6,所以下载的文件为:
pytorch-1.4.0-py3.7_cuda10.1.243_cudnn7.6.3_0.tar.bz2
torchvision-0.5.0-py37_cu101.tar.bz2
3、安装pytorch
打开终端运行
conda install pytorch-1.4.0-py3.7_cuda10.1.243_cudnn7.6.3_0.tar.bz2
conda install torchvision-0.5.0-py37_cu101.tar.bz2
4、pytorch测试
在Spyder中输入
import torch
print(torch.__version__)
5、结果
6、卸载
conda remove --force pytorch
conda remove --force torchvision
附录2:安装Opencv
1、给anaconda添加中科大镜像源
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/menpo/
conda config --set show_channel_urls yes
2、安装Opencv python3.7版本
conda install menpo opencv
3、安装Opencv python2.7版本
conda install -c menpo opencv
注意区别,加一个-c表示在python2.7的基础上安装opencv
4、安装opencv-python
pip3 install opencv-python
5、安装完成,import cv2
附录3:安装MATLAB
1、MATLAB 2018b 下载地址
链接: https://pan.baidu.com/s/1HPscHmYO_hJIEG3EkIO6cA 提取码: wtmy
2、新建挂载文件夹
mkdir matlab
3、将光盘1挂载到matlab文件夹
sudo mount -o loop ~/Mydata/LINUX/Install/R2018b_glnxa64_dvd1.iso ~/matlab
4、进入挂载目录安装
sudo ~/matlab/install
5、使用密钥
6、输入Crack中给的密钥
7、装到一半的时候需要挂载光盘2
8、新开一个终端挂载光盘2
卸载光盘1
sudo umount ~/matlab
挂载光盘2
sudo mount -o loop ~/Mydata/LINUX/Install/R2018b_glnxa64_dvd2.iso ~/matlab
9、点击确定,继续安装完成即可。
10、卸载光盘2
sudo umount ~/matlab
11、终端运行matlab,开始激活
sudo /usr/local/MATLAB/R2018b/bin/matlab
12、选择不联网激活
13、使用Crack中的license_standalone.lic进行激活
14、点击完成
15、替换libmwlmgrimpl.so文件
sudo cp -f ~/Mydata/LINUX/MATLAB_R2018b_Linux64_Crack/R2018b/bin/glnxa64/matlab_startup_plugins/lmgrimpl/libmwlmgrimpl.so /usr/local/MATLAB/R2018b/bin/glnxa64/matlab_startup_plugins/lmgrimpl/
16、添加快捷启动
打开配置环境变量
sudo nano ~/.bashrc
末尾加入matlab启动路径
export PATH=/usr/local/MATLAB/R2018b/bin/:$PATH
使配置生效
source ~/.bashrc
17、在终端中输入matlab,就可以愉快地进行matlab程序呢开发了。
18、错误
无法写入 "/home/ubuntu/.matlab/R2018b" 中的预设文件 "matlab.prf"。 请检查文件权限。
进入路径赋予更改权限即可:
cd /home/ubuntu/.matlab/
sudo chmod 777 R2018b/
19、添加桌面快捷
sudo nano /usr/share/applications/Matlab2018b.desktop
输入:
[Desktop Entry]
Categories=Application;Development;
Comment=Matlab:科学计算的语言
Encoding=UTF-8
Exec=/usr/local/MATLAB/R2018b/bin/matlab -desktop -prefersoftwareopengl
Icon=/usr/local/MATLAB/R2018b/toolbox/shared/dastudio/resources/MatlabIcon.png
Name=MATLAB R2018b
StartupNotify=true
Terminal=false
Type=Application
附录4:安装pycharm
1、pycharm Linux版本下载
Download PyCharm: Python IDE for Professional Developers by JetBrains
下载社区版,专业版要收费
2、安装教程
3、Pycharm中输入中文
JetBrains全家桶2019.3版本在Ubuntu不能输入中文的问题
附录5:一些常用指令
sudo apt-get autoclean --清理旧版本的软件缓存
sudo apt-get clean--清理所有软件缓存
sudo apt-get autoremove--删除系统不再使用的孤立软件
sudo apt-get -f install --修复软件之间依赖关系