当前训练CNN最受欢迎的两个框架是TensorFlow和 pyTorch,搭建相应的环境其实不难,博主早先在笔记本的Ubuntu上很快就搭建了pyTorch环境及手写了ResNet 的Demo。但是最近台式机配上比较不错的显卡后,再次搭建带CUDA的 pyTorch开发环境时,遇到一些问题,故简略记录于此。

博主一直使用的是Ubuntu+Windows双系统,此次一并将双系统(Win10+Ubuntu18.04)安装方式总结啦。

双系统安装

这里主要总结先安装Win10,再安装Ubuntu18.04的方法。

第一步:安装Win10。

这一步很多人可以直接跳过,毕竟平时使用的就是Win10。而Windows的安装方法当前也越来越简单,将安装包刻录到U盘里(使用UltraISO),然后在BIOS或UEFI启动顺序设置中将U盘设置为优先启动后,根据提示指引安装即可,此处不赘述。

在既有的Win10上,需要做一件事情,以便后续安装Ubuntu:进入“磁盘管理”后,将硬盘压缩出50G左右,作为“未使用”的空白盘。注意:1、如果有双硬盘(固态+机械),则可选择将固态硬盘压缩出一些空间,作为Ubuntu的boot空间(开机会快一点)。2、考虑到要处理大量图像数据,最好将硬盘留大一点,比如我预留了500G空间未使用。

第二步:准备安装Ubuntu18.04。

基本和安装Win10类似,从官网获取Ubuntu18.04后,将安装包刻录到U盘里(使用UltraISO,具体操作请自行百度,有很多制作系统安装盘的教程),然后在BIOS或UEFI启动顺序设置中将U盘设置为优先启动后,选择“Install Ubuntu”后,进入安装指引。其中有一步会提示“是否与Win10共存”,这一步很关键,如果没有出现这个提示,之前的步骤会是有问题的。当然,此处我们选择“Other/其他”,以便进行自定义安装。

第三步:Ubuntu安装分区设置。

根据安装引导提示,将会进入分区设置界面。分区其实不难,关键是把握4个分区:主分区/,交换分区swap,引导分区boot,和用户分区home。选择之前预留的空白空间后,进行如下操作。

创建主分区/。主分区相当于系统盘,建议分配10G左右空间。选择主分区、Ext4、和挂载点/。

创建交换分区swap。交换分区将被当成内存使用,建议设置为物理内存同样大小。选择逻辑分区、交换空间。

创建引导分区boot。引导分区是用来开机引导的,建议500M左右,另外可创建在固态硬盘里。选择逻辑分区、Ext4、和挂载点/boot。

创建用户分区home。这里是平时工作的地方,主要是存储数据。选择逻辑分区、Ext4、和挂载点/home。

之后根据提示完成安装即可。

Ubuntu系统安装显卡驱动

安装好Ubuntu后,发现分辨率比较低,而且操作比较卡顿,直觉告诉我是显卡驱动的问题。博主显卡是RTX 2080Ti,于是立刻到NVIDIA官网(https://www.geforce.com/drivers)下载了个相应的显卡驱动:NVIDIA-Linux-x86_64-418.56.run(请根据自己的显卡和当前驱动更新发布情况选择适当的驱动版本)。

安装前需要禁用系统默认的显卡驱动,如下操作。

打开系统黑名单:

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

在文件末尾加入这几行:

# for nvidia display device install
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist rivatv
blacklist nvidiafb

保存,然后更新initramfs:

sudo update-initramfs -u

重启电脑后,输入命令查看是否禁用成功:

lsmod | grep nouveau

无输出则说明禁用成功。

接下来进行驱动安装。首先需要将安装文件的权限提升到最高:

sudo chmod 777 NVIDIA-Linux-x86_64-418.56.run

然后运行安装程序:

sudo ./NVIDIA-Linux-x86_64-418.56.run

如果安装过程中遇到错误如未找到gcc或make,那么安装好这些必要的程序后再重新运行安装显卡驱动。

显卡驱动安装好后,重新启动电脑,发现分辨率正常了,找到“设置”→“详细”,发现显示了RTX 2080Ti。说明显卡驱动安装成功。

检测显卡的另一个方法,运行命令:nvidia-smi。

安装Anaconda

目前pyTorch搭建IDE比较推荐Anaconda。至官网下载Linux64位版本的Anaconda安装包(博主下载的是Anaconda3-5.2.0-Linux-x86_64.sh)。将该文件权限提升到最高:

sudo chmod 777 Anaconda3-5.2.0-Linux-x86_64.sh

然后sudo运行安装即可。

安装成功后,在Terminal中输入jupyter notebook,即可在浏览器中打开notebook操作界面。

注意:若官网下载Anaconda太慢的话,可以从清华镜像平台上下载:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/

安装pyTorch和相应CUDA

这部分可以参考官网的指导“get-started”:https://pytorch.org/get-started/locally/

理论上这一步可以直接运行官网推荐的命令进行安装的(以CUDA9.0为例):

conda install pytorch torchvision cudatoolkit=9.0 -c pytorch

安装成功后,可以在notebook中使用一下代码进行测试:

from __future__ import print_function
import torch
x = torch.rand(5, 3)
print(x)

应该输出类似于以下的结果:

tensor([[0.3380, 0.3845, 0.3217],[0.8337, 0.9050, 0.2650],[0.2979, 0.7141, 0.9069],[0.1449, 0.1132, 0.1375],[0.4675, 0.3947, 0.1426]])

另外,测试cuda:

import torch
torch.cuda.is_available()

如果输出True,就说明安装一切安装成功了。

但是如果安装失败,可以尝试手动安装这些组件:CUDA、cuDNN、pyTorch。

CUDA安装包下载地址:https://developer.nvidia.com/cuda-downloads

cuDNN安装包下载地址:https://developer.nvidia.com/rdp/cudnn-download

pyTorch建议命令安装:conda install pytorch

主要CUDA与cuDNN需要安装互相兼容的版本,官网上可找到其兼容性的相关说明。CUDA下载的最后一步选择“runfile(local)”

博主在手动安装CUDA时捣鼓了很久,本来想装CUDA10.1,但是进入安装界面后,如果选择“不安装驱动”(显卡驱动之前已经安装过了啊),就会报错“需要在安装驱动基础上进行后续安装”;而如果选择“安装驱动”,就会出现“假的安装成功”。之后卸载当前的显卡驱动后,再进行安装,会出现“近似的安装成功”(/usr/local目录下出现了cuda10.1的目录,但是其实似乎没完全安装)。但是重启后,发现驱动还是没有,于是又重新装了一次显卡驱动。另外,据说还可能出现gcc版本和CUDA不兼容,可能需要将gcc降级处理(兼容信息同样可以在官网CUDA兼容说明中找到,如:https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html)。

手动安装容易出各种问题,还是建议尽量使用命令:conda install pytorch torchvision cudatoolkit=9.0 -c pytorch,直接搞定。

另外,有篇博客也对此进行了总结,可以参考:Ubuntu18.04下安装深度学习框架Pytorch(GPU加速)

其他参考内容:

在Ubuntu 18.04系统中安装RTX 2080Ti显卡驱动的方法

ubuntu安装cuda

至此,安装结束。现在启用cuda跑一跑你的CNN训练,不出意外的话,训练速度瞬间将得到显著的提升。继续努力吧!

Linux系统搭建GPU加速的PyTorch环境相关推荐

  1. (十三)深入理解蓝牙BLE之“Linux系统搭建zephyr和dongle的环境”

    目录 dongle准备: nrfutil工具安装: 更新dongle固件: zephyr系统: 蓝牙Peripheral的例程编译:

  2. Linux系统搭建Red5服务器

    Linux系统搭建Red5服务器 Red5 是 支持Windows,Linux等多平台的RTMP流媒体服务器,Windows下搭建相对容易,图形界面操作比较简单,Linux服务器的环境下没有图形界面, ...

  3. 嵌入式Linux学习笔记(1-1)——linux系统搭建

    版权声明:本文为博主原创文章,未经博主允许不得转载. 学习嵌入式linux已经有2年时间,虽然时间不长,但一路走来遇到很多问题,绕了很多弯路.写这篇文章的目的是分享我的经验,以供初学者参考,希望能够帮 ...

  4. SOC FPGA linux系统搭建(Terasic DE10-Nano开发板)

    Embeeding linux for Cyclone V SoC FPGAs(Terasic DE10-Nano) 本设计使用黄金硬件参考设计 (GHRD) 和添加自定义 IP 到开发 Linux ...

  5. scala linux 环境配置,LINUX系统下Java和Scala的环境配置

    最近,笔者在研究一个有关"自然语言处理"的项目,在这个项目中,需要我们用Spark进行编程.而Spark内核是由Scala语言开发的,所以在使用Spark之前,我们必须配置好Sca ...

  6. ZynqLinux最小系统系列—— 9、一般Linux系统搭建(非Petalinux)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ZynqLinux最小系统系列-- 9.一般Linux系统搭建(非Petalinux) 前言 准备工作 操作流程 前言 前面petal ...

  7. SoC学习篇—Linux 系统搭建

    SoC学习篇-Linux 系统搭建 一.制作.dtb与.rbf文件 1.编译硬件工程 2.文件制作 二.启动操作系统内核 1.编译uboot 2.生成preloader-mkpimage.bin文件 ...

  8. linux 版本的scipy,Linux 系统中 SciPy (Python 3) 编程环境

    Linux 系统中 SciPy (Python 3) 编程环境 SciPy (pronounced "Sigh Pie") is a Python-based ecosystem ...

  9. 软raid1 重新同步_软RAID搭建基于linux系统搭建RAID5

    实验二.软RAID搭建-基于linux系统搭建RAID5 实验要求: 1)创建RAID5; 2)添加一个热备盘sdj 3)指定chunk为32k 4停止阵列,重新激活阵列 5使用热备盘,扩展阵列容量, ...

  10. VMWare虚拟OSX系统搭建ios、iphone开发环境并成功运行模拟器(2016)

    虚拟OSX系统搭建ios.iphone开发环境并成功运行模拟器 搭建ios.iphone开发环境,如果你是土豪,又或者是 愿意砸钱投资.直接买个MacBook就可以了.然后从AppStore下载所需的 ...

最新文章

  1. 给Oracle表空间Tablespace扩展库文件
  2. Webpack-IE低版本兼容指南
  3. 混合开发的坑(7) ---输入文本时,键盘遮挡
  4. 【Python】条件及循环语句
  5. Android多线程分析之三:Handler,Looper的实现
  6. 蚂蚁资深技术专家王旭:开源项目是如何让这个世界更安全的?
  7. 洛谷 P1344 [USACO4.4]追查坏牛奶Pollutant Control 解题报告
  8. 83年的我刚好今年遇到了失业
  9. Mysql:语法:虚拟表DUAL
  10. Java8之list.stream的常见使用例子
  11. Openv*n配置和单网卡转发
  12. 音乐节奏提取matlab,音乐旋律提取算法 附可执行demo
  13. [Linux]学习笔记3:用户及文件权限管理
  14. zoj 3551 Bloodsucker 概率DP
  15. Stm32中英文手册官网免费
  16. 图片存base64后展示问题
  17. 跌破150美元、市值蒸发3600亿美元,这个圣诞节苹果过得“太冷了”!...
  18. 数据可视化笔记4 结构数据的可视化图形
  19. c语言顺序线性表的实现
  20. 自考免考计算机应用基础申请流程,自考免考课程申请过程

热门文章

  1. MFC添加鼠标右键菜单
  2. C/C++如何整行输入
  3. 群晖域名注册_小白瞎折腾 篇九:玩转群晖NAS:域名注册技巧,及SSL证书获取...
  4. Windows C盘清理
  5. 终于有人把p值讲明白了
  6. WIN11 系统取消代理 | 设置代理服务器
  7. 2021-07-26 SEO优化_关键词密度设置算法
  8. wav转mp3怎么转?
  9. 电脑各种故障排除集锦
  10. 什么是Linux内核?它有什么功能?