在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年開始了,祝無怨無悔。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM