在Win10上搭建fastai课程环境

如果你正在学习深度学习,也许你已经知道 fastai 这个词。这是一个深度学习社区,由Jeremy Howard发起,此公是麦肯锡咨询公司的第一位数据科学家,同时也是Kaggle的联合发起人。同时,fastai也是一个基于Pytorch的封装包,有点儿类似深度学习领域的sklearn,提供了很多神经网络的封装,并且包含了一套非常不错的默认超参数。

如果你第一次听说fastai,非常推荐你去他们的官网看看,把环境搭建好,然后学起来吧。这里先给出网址,但是还是希望你先看完下面的内容再过去。
https://www.fast.ai/

那么,为什么这么多人学习fastai的课程呢?根据我自己的学习体验,大致有以下这么几点:

  1. 这个课程采用自顶向下的方法。上手直接带你调包,先搭建出一个非常优秀的图片分类器,让你直接体会到ResNet是怎么使用的。然后在Part 2课程中才会谈到一些黑盒内的东西。
  2. 这个课程有非常活跃的社群,你可以在里面尽情提问,阅读别人发起的问答。总之,你遇到的问题一般都有同道中人帮你解答,有时候Jeremy自己也会回复。
  3. 这套系列课程有深度学习、机器学习、NLP、线性代数。后续肯定还会有课程上线。所有课程都免费。

当然,这套课程也不是没有缺点的,根据我自己的学习体验,大致也有以下这么几点:

  1. 混乱。这是我第一次访问fastai官网的感受。各个课程都有多个版本,而且社群论坛里的帖子惊人的多,给人的感觉就是混乱。
  2. 环境搭建不容易,经常出现:你按照指引,吭哧吭哧弄好环境,打开jupyter notebook运行导入fastai这个包作验证时,弹出找不到这个包。非常令人沮丧,导致后面的课程无法进行。
  3. fastai这个框架封装的太狠了,基本没给用户留什么自主性。

但是,在学习一段时间后,我针对上面三个缺点逐一答对:

  1. 确实混乱,需要自己耐着性子去理清。举例子:深度学习课程分为part 1 和part 2。part 1 就是纯粹的讲怎么使用fastai去快速上手深度学习,去实际做点东西出来,完成CV和NLP任务;part 2 则会深入一点,会带领大家看看fastai这个框架是怎么设计的,背后用到的深度学习的一些原理是怎样的。这是横向的分别。纵向分别有v1,v2,v3,分别是2017、2018、2019三个版本,其中2017版本用的是keras,2018之后用的是pytorch。目前主流的学习使用的是2018这版,当然2019版本也已经上线,bilibili上有授权翻译版视频。
  2. linux上搭建fastai相对要容易一些,但是linux自有其他不合适使用的问题。比如笔者这样,自己组装了一个主机,买的RTX 2070 super显卡的用户,肯定是不会去使用云服务器(太贵啦),但是又不可能直接安装Linux系统,那样日常没法使用。在windows上安装fastai则成为“刚需”,这篇随笔要记录的就是这个事情。
  3. 因为是自顶向下的学习路线,决定了这套课程不会讲得太深入,用的工具也必须要开箱即用的。笔者自己也曾想自底向上去学习机器学习、深度学习。但是笔者不是科班方面的博士,只是一个数据工程师,学习的目的是快速掌握数据挖掘中用到的技术。如果一直在打基础,结局只能是学而不用则惘。所以,学习完fastai的所有课程之后,才是我们自己真正开始研究底层原理的正确时机。

介绍性的谈话就到这里打住,更多的信息请大家去fastai的论坛里面尽情阅读,地址是 https://forums.fast.ai/top/all


下面开始介绍如何在 win10 系统上搭建环境,win7系统应该相差无几。

  1. 获取超级管理员权限(具体操作请自行谷歌)

  2. 安装 Anaconda(具体操作请自行谷歌)

  3. 安装 Cmder(具体操作请自行谷歌)

  4. 打开cmder,切换到你想放置fastai的目录,运行下列命令:

    • git clone https://github.com/fastai/fastai.git
    • cd fastai
    • conda env update (这一步会使用fastai目录里的environment.yaml帮你创建一个名为fastai的虚拟环境;建议将文件里的pytorch版本设置为1.0.0)
    • conda activate fastai
    • jupyter nbextension enable --py widgetsnbextension --sys-prefix
    • cd courses\dl1 (你要学习哪个课程就去哪个目录,如果要学习机器学习,就应去 courses\ml)
    • rm -rf fastai (也有可能你的文件夹里没有这个目录,跳过即可)
    • mklink /d fastai ..\..\old\fastai
    • cd ..\..
    • jupyter notebook
  5. 到这里,环境就搭建好了,下面还需要下载fastai的模型,否则你在学习时会发现无法建立神经网络训练器

  6. 如果在跑模型过程中遇到 CUDNN_STATUS_EXECUTION_FAILED 问题,检查下是否cuda版本和显卡不适配。例如笔者的显卡是RTX 2070,使用的cuda版本必须是10.0以上。同时注意,cudnn101 需要python版本在3.7以上,而Python3.7是不包含ssl模块的,这就会导致你围绕python3.7搭建好pytorch环境后,尝试打开jupyter notebook时会报错: import _ssl DLL error。需要手动安装ssl包,命令是 conda install openssl,成功安装后关闭命令行工具后重新打开,就可以正常使用jupyter notebook了。

  7. 如果跑模型过程中提示显卡内存不够分配了,可以把每个batch的规模调小一点,用时间换取空间。

祝大家学习顺利,今天是2020年1月1日,新的10年开始了,祝无怨无悔。

posted @ 2020-01-01 12:35  chandlertu  阅读(1898)  评论(0编辑  收藏  举报