目录
一、背景
二、软硬件
三、避坑
坑1:网速
坑2:操作系统选择
坑3:GPU与CPU
坑4:显卡驱动选择
坑5:Pytorch安装
四、安装过程
1. Anaconda
2. Cuda
3. CuDNN
4. Pytorch
5. Fastai v1
7. Date
8. Test
五、结论
参考
长久以来我们接受的都是传统的自下为上的学习模式,也就是从基础知识到高级概念再到实践的教育。而在fast.ai
的课程里,Jeremy Howard 提倡的是自上而下的学习方法,也就是回归到人最自的学习方法。
在课程中,Jeremy 就是贯彻着这样的教学理念,从一开始就让大家先别管具体的原理,按照他所教的方法把机器学习的模型实现出来,让大家以最快的速度感受到这项技术的力量以及降低对它的恐惧感。
如果你也在学习深度学习,也刚刚接触fastai项目,正在为环境而挠头,那么本文便有意义了。官网乱糟糟的引用与说明,着实为入门者配置环境留下了很多的坑,下面我将一一道来。
本文搭建fastai v1环境,采用Win10操作系统、MX250 GPU显卡、CUDA10.1显卡驱动、cuDNN驱动补丁、Pytorch1.0.0框架,具体SW&HW如下所示。
OS:Win10
RAM:8G/16G+
GPU:MX250
Anaconda:Anaconda3-5.2.0-Windows-x86_64
Nvidia Cuda:v10.1
Cudnn:cuDNN v8.0.3 (August 26th, 2020), for CUDA 10.1
Pytorch:v1.0.0
fastaiv1环境需要达到以下配置才安装完成,“python -m fastai.utils.show_install”命令查看:
(fastaiv1) C:\Users\zhangsan>python -m fastai.utils.show_install
```text
=== Software ===
python : 3.6.12
fastai : 1.0.61
fastprogress : 0.2.7
torch : 1.0.0
nvidia driver : 443.32
torch cuda : 9.0 / is available
torch cudnn : 7005 / is enabled
=== Hardware ===
nvidia gpus : 1
torch devices : 1
- gpu0 : 2048MB | GeForce MX250
=== Environment ===
platform : Windows-10-10.0.17763-SP0
conda env : fastaiv1
python : C:\Users\zhangsan\anaconda3\envs\fastaiv1\python.exe
sys.path :
C:\Users\zhangsan\anaconda3\envs\fastaiv1\python36.zip
C:\Users\zhangsan\anaconda3\envs\fastaiv1\DLLs
C:\Users\zhangsan\anaconda3\envs\fastaiv1\lib
C:\Users\zhangsan\anaconda3\envs\fastaiv1
C:\Users\zhangsan\anaconda3\envs\fastaiv1\lib\site-packages
C:\Users\zhangsan\anaconda3\envs\fastaiv1\lib\site-packages\win32
C:\Users\zhangsan\anaconda3\envs\fastaiv1\lib\site-packages\win32\lib
C:\Users\zhangsan\anaconda3\envs\fastaiv1\lib\site-packages\Pythonwin
```
Please make sure to include opening/closing ``` when you paste into forums/github to make the reports appear formatted as code sections.
(fastaiv1) C:\Users\zhangsan>
最最最重要的网速,建议:网络不好的兄弟,建议关机,立刻马上。要不fastai没安装好,你已经自闭了,我这300M的网速,凌晨(非高峰时段)下载才稳一点,供参考。
fastai官网的fastai v1安装指南建议使用Linux操作系统,Windows操作系统也支持但不增加新功能,MacOS还在开发中,见摘文,作为技术开发人员一般都会选择Linux,比如Ubuntu,对不对;如果你不了解Nvidia显卡,也没有专门的Linux系统机器,同样,作为技术开发人员一般都会选择虚拟机,比如Ubuntu VM,对不对。
以上全错!
建议:要么Windows,要么Linux,不要VM。因为虚拟机用的模拟显卡,Nvidia目前并不支持。如果在Windows上安装Ubuntu虚拟机,实现虚拟机借用宿主机显卡的方式,途径有二:Hyper-V PCI与1虚多显卡,感兴趣可以去了解下。然而,可行性极低,不如直接装个双系统来的实在。
摘自fastai v1官网:
NB:fastai v1 currently supports Linux only, and requires *PyTorch v1* and Python 3.6 or later. Windows support is at an experimental stage: it should work fine but it's much slower and less well tested. Since Macs don't currently have good Nvidia GPU support, we do not currently prioritize Mac development
fastai官网的fastai v1安装指南说GPU或者CPU都支持,见摘文。建议:有条件上GPU。因为当你的神经网络规模越是复杂,其对性能的要求越高,终端CPU难以满足要求。
摘自fastai v1官网:
Starting with pytorch-1.x you no longer need to install a special pytorch-cpu version. Instead use the normal pytorch and it works with and without GPU. But you can install the cpu build too.
Nvidia官网的CUDA下载中心可以手动查找适用于你电脑的驱动程序,输入你的电脑显卡配置、操作系统、下载类型等,官网自动给你推荐适用于电脑配置的最新版驱动程序;Nvidia官网的CuDNN下载中心可以注册登录后给你推荐并免费下载。
建议:Nvidia CUDA的版本,务必于你笔记本Gpu显卡版本对应;Nvidia CuDNN的版本,务必于Nvidia CUDA版本对应。如果你使用Nvidia CUDA 10.1版本,那么务必使用cuDNN v8.0.3 (August 26th, 2020), for CUDA 10.1版本。
在线代码编辑器jupyter notebook目前对Pytorch v1.0.0版本支持的较好,所以我下载了Pytorch v1.0.0。如无法使用jupyter notebook,可参照以下引用,卸载非v1.0.0版本的pytorch再安装。
建议:使用Conda下载Pytorch前,务必更新到最新版Conda(今天最新版本是4.9.x)与国内下载源(清华源等),具体更新方式见下文。
摘自博文:
If you have an error running a notebook in your fastai environment, check your Pytorch version. It must be 1.0.0. If you have a different version of Pytorch, run the following code to install the Pytorch version 1.0.0:
conda uninstall pytorch --force conda install pytorch=1.0.0
Anaconda工具集包括Conda、Python以及一大堆安装好的工具包,比如:numpy、pandas等;Miniconda包括Conda、Python;其中,Conda是一个开源的包、环境管理器,可以用于在同一个机器上安装不同版本的软件包及其依赖,并能够在不同的环境之间切换。和Python相对应,Anaconda的版本分为Anaconda2(Python2.x)和Anaconda3(Python3.x),提供32位和64位下载。
如果你的Win10里还没有安装python,建议先安装Anaconda,anaconda会自动帮你安装python,anconda安装完成会自动生成base虚拟环境,十分方便。可以直接网上搜官网(速度较慢),或者清华镜像(速度较快),我是官网下载的Anaconda3-5.2.0-Windows-x86_64.exe版本,安装好后将目录添加到环境变量即可,具体操作如下:
官网下载镜像,注意anaconda与python对应关系,如下图所示。
exe格式傻瓜式安装,记得勾选:
Add anaconda to the system PATH enviroment variable
若勾选“Add anaconda to the system PATH en...”无需配置;未勾选,请自行搜索配置过程,这里不再详述。
完成以上过程,可以使用“conda --version”命令测试是否成功:
C:\Users\zhangsan>conda --version
conda 4.9.2
C:\Users\zhangsan>
如果输出conda x.x.x之类的就说明环境变量设置成功了。为了避免可能发生的错误,我们在命令行输入以下两条命令先把所有工具包进行升级,为安装Pytorch做准备【坑5】。
conda update conda
conda update --all
CUDA是建立在NVIDIA的CPUs上的一个通用并行计算平台和编程模型,基于CUDA编程可以利用GPUs的并行计算引擎来更加高效地解决比较复杂的计算难题。近年来,GPU最成功的一个应用就是深度学习领域,基于GPU的并行计算已经成为训练深度学习模型的标配。CUDA不是专门针对深度学习的,任何算法都可以使用CUDA重写从而在GPU上运行。总的来说,Cuda安装较为简单,直接从官网下载exe文件进行安装,注意与后面的Cudnn版本一致就好。
Cuda驱动下载注意与你的电脑GPU显卡驱动对应【坑4】。
不建议使用:Nvidia官网的CUDA下载中心可以手动查找适用于你电脑的Cuda驱动程序,我的是Greforce MX250 Gpu显卡,如下图(不知道怎么查看自己显卡信号的可以下载鲁大师,硬件扫描查看)。
建议使用:Cuda各版本下载自行选择版本号,我这里选择的10.1版本,显卡驱动查询见博文。下载对应版本Cuda后即可exe自定义安装。
备注:如果你不需要VS,可以Cuda选择自定义安装,去掉VS安装选项即可。注意去掉后pip安装有些软件可能会因为缺失VC++2014卡死,见博文。
Cuda环境变量,右击我的电脑、属性、高级系统设置、系统属性、高级、环境变量下分别设置用户环境变量与系统环境变量,如下图所示:
备注:这里注意核对你的cuda安装路径。
完成以上过程,可以使用“nvcc -V”命令测试是否成功:
C:\Users\zhangsan>nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Fri_Feb__8_19:08:26_Pacific_Standard_Time_2019
Cuda compilation tools, release 10.1, V10.1.105
C:\Users\zhangsan>
CuDNN是基于CUDA的深度学习GPU加速库,专门为深度学习算法服务的;同一个深度学习算法用CuDNN+CUDA实现相比直接CUDA实现效率更高,运行速度更快,资源消耗更少。CuDNN下载需要先注册后下载,所以第一次下载的请注册吧。
CuDNN驱动下载注意与你Cuda驱动对应【坑4】。
CuDNN下载中心,如果你使用Nvidia CUDA 10.1版本,那么务必使用cuDNN v8.0.3 (August 26th, 2020), for CUDA 10.1版本。
安装CuDNN
下载下来后是一个压缩包,解压后得到三个文件夹bin ,include 和lib。然后,将解压后得到的的bin ,include 和lib文件夹分别复制到cuda安装路径下与cuda的bin ,include 和lib文件夹合并。
测试
完成以上过程,可以使用以下命令测试是否成功:
cd C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\extras\demo_suite # 进入cuda安装目录下的demo_suite文件夹内
.\deviceQuery.exe #执行.\deviceQuery.exe
PyTorch是一个开源的Python机器学习库,基于Torch,用于自然语言处理等应用程序。2017年1月,由Facebook人工智能研究院(FAIR)基于Torch推出了PyTorch。它是一个基于Python的可续计算包,提供两个高级功能:1、具有强大的GPU加速的张量计算(如NumPy)。2、包含自动求导系统的深度神经网络。
注意:本安装方式提供给不需要安装fastai的人;若是需要安装fastai,即进行【5.fastai】的人可以忽略pytorch的安装;Pytorch可有conda安装,或者网络较慢可先行下载tar.gz2安装包后本地安装;
方法1:conda在线安装
1)更新Conda
使用Conda下载Pytorch前,务必更新到最新版Conda【坑5】,具体内容请下拉参照【5. Fastai】【conda更新】。
2)更换国内源
这是官网推荐的默认下载方式,由于某些众所周知的原因,国内下载很慢甚至会失败,所以建议采用清华镜像。在conda下运行以下命令设置从清华镜像源下载。
# 添加Anaconda的清华镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
# 设置搜索时显示通道地址
config --set show_channel_urls yes
3)安装Pytorch
其安装需要到pytorch官网选择相应版本的pytorch。
复制网站的下载命令在cmd执行即可。
# 国内源
conda install pytorch torchvision cudatoolkit=10.1
# 国外默认源
conda install pytorch torchvision cudatoolkit=10.1 -c pytorch
备注:-c pytorch -c fastai -c conda-forge表示使用默认官网源,不加表示使用.condarc中的源(国内清华源存放位置)
方法2:先下载后本地安装
1)下载安装包
点击anaconda cloud官网搜索pytorch,然后Ctrl+f搜索对应的版本tar.gz2安装包。如这里搜索1.0.0.
然后,点击file后可见多个版本的安装包,注意cuda版本、python版本、以及conda版本号。
2)conda本地安装
下载到本地后执行以下命令完成安装:
# conda安装本地tar.ba2包,需先cd到该包路径下
conda install --use-local pytorch-1.0.0-py2.7_cuda9.0.176_cudnn7.4.1_1.tar.bz2
测试
完成以上过程,可以使用以下命令测试是否成功:
import torch
torch.cuda.is_availabe()
Conda/Pip更新
为了避免各种奇怪的Errors,强烈建议先将工具Pip/Conda更新至最新版本【坑5】,更新方式如下:
Conda更新
1.1)conda自身更新
执行“conda update conda”更新后,再次执行"conda update conda",直到查看conda为最新版本为止【坑5】。命令如下:
conda update conda # 该命令连续执行至少两次
conda --version #查看conda版本信息
1.2)conda依赖环境中软件更新
conda update --all
Pip更新
# 更新 pip/setuptools
pip install -U pip setuptools cython -i https://pypi.douban.com/simple
fastv1安装目前有两种常用方法,利用conda/pip安装,或者yml安装。
方法1:conda install安装
总体思路:首先生成一个虚拟环境;然后进入该虚拟环境中,利用conda/pip从官网直接下载fast及其依赖环境。
1)生成虚拟环境
conda create -n fastai_env python=3.6
若是下载成功,可以采用以下两条命令查看fastai虚拟环境并进入。
conda env list
conda activate fastai_env #这里fasiai_env是虚拟环境名
2)下载fastai项目
两种方法Conda或者pip:
conda install直接下载官网fastai工程:
conda install fastai pytorch=1.0.0 -c fastai -c pytorch -c conda-forge
备注:-c pytorch -c fastai -c conda-forge表示使用默认官网源,不加表示使用.condarc中的源(国内清华源存放位置)
或pip安装
# 这里没有采用清华源,感觉豆瓣源要更加快一些
pip install fastai==1.0.0 -i https://pypi.douban.com/simple
or
# pip备用加速命令
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn fastai==1.0.0
方法2:yml安装
总体思路:首先下载官方fastv1代码,源码自行编译或者.git直接clone等;然后利用fastaiv1下的environment.yml依赖环境联网下载所需要的软件集。
1)下载fastai项目
git克隆官网fastai工程:
git clone https://github.com/fastai/fastai.git
2)生成依赖环境
克隆到本地后,进行fastai目录:
cd fastai
两种方式可以下载依赖环境,这两种方式Conda都会使用fastai目录里的environment.yaml帮你创建一个名为fastai的虚拟环境,建议将文件里的pytorch版本设置为1.0.0【坑5】。这个过程时间较长,需要网速给力【坑1】,我下载时间按hour计。若下载失败了,请再次下载;或者更换其他国内源下载;或者继续使用默认国外源下载:
方法1:
conda env update
方法2:
conda create -f environment.yml
若下载成功,可以采用以下两条命令查看fastai虚拟环境并进入。
conda env list
conda activate fastai #这里fasiai是虚拟环境名
测试
完成以上过程,可以使用以下命令测试是否成功:
python -m fastai.utils.show_install
若返回以下【二、软硬件】所示信息则成功了!!!
目前,不少博客并没有为阅读者提供整体框架,提供的解决问题思路也是东一块西一块,需要大家广泛阅读自行总结框架与思路,参考起来非常不方便。希望本文能够帮助大家尽快配置好fastai环境,如有错误之处,还请指出,多多包涵。
Anaconda基本命令:https://www.cnblogs.com/devilmaycry812839668/p/10349780.html
fastaiv1官网安装指南:https://github.com/fastai/fastai1/blob/master/README.md#installation
Cannot unpack file xxx / pip安装速度慢 / 出现readtime out问题:https://blog.csdn.net/cn_1937/article/details/81449484