--- tags: Python,Fast.ai author: Lai-Chun-Jing date: 2019/9/12 --- **<font color=Blue>【Fast.ai學習筆記(一)】</font>** # 如何建立Fast.ai環境 **<font color=Black size=4>September, 12, 2019</font>** **<font color=Black size=4>Lai-Chun-Jing</font>**     因緣際會下,有幸參加 ***台北敏捷AI社群*** 的第四次Workshop。在這次小聚當中,發起人**Jason**講的主題是 —— **Fast.ai深度學習課程**。Fast.ai是一套對非程式開發人員十分友善的入門課程,這次小聚中,我們透過Google所開發的雲端Jupyter Notebook環境,拆解成幾個簡單的步驟來完成一個基礎的ResNet模型。 ### <font color =Blue>1. Fast.ai課程簡介</font>     Fast.ai是KaJeremy Howard(同時也是Kaggle的總裁&首席科學家)所創辦。**.ai**其實是英國海外屬地安圭拉(Anguilla)國家及地區頂級域(ccTLD)的網域名稱,管理者為安圭拉政府,如果想要讓自己有AI的感覺也可以去註冊,不過據說不便宜就是了。Fast.ai不僅僅是一門課程,他更建立一套基於Pytorch的函數庫(**Library**),有點類似**TensorFlow與Keras**的關係。 | Type |Library | Library | |:--------:|:--------: |:--------: | |Interface |[Keras ](https://keras.io/) |[Fast.ai](https://www.fast.ai/)| |Base |[TensorFlow](https://www.tensorflow.org/)|[Pytorch](https://pytorch.org/) | (**如果對這幾個Library感興趣可以點進去連結**) 在正式進入Fast.ai課程之前,可能要先對幾個名詞簡單的了解一下: * **Python** Python是近幾年,最為熱門的程式語言。Python的設計是直譯式、進階編程、通用型程式語言,其強調**程式碼的可讀性和簡潔的語法**,是許多非程式開發人員入門的首選。 * **Jupyter Notebook** Jupyter Notebook它的前身是**IPython**,是一個以**Web**為基礎的交互式計算環境,主要用來創建Jupyter Notebook文檔(**.ipynb**)。Jupyter Notebook因為其簡潔、直覺的介面設計,對新手非常友善。近年來,十分受到資料科學等相關研究者的歡迎。 * **Colab** Colab是一個由Google所設計的免費雲端**Jupyter Notebook**環境。透過Colab可以使用Google所提供的虛擬**GPU(Tesla K80 GPU)**以及**TPU(TPUv2)**,來訓練你所設計的深度學習模型。目前提供Python2與Python3在Colab上面編碼。 今天所學習的Fast.ai的課程是【**Practical Deep Learning for Coders, v3**】的**Lessons1 - What's your pet**。  **<center>Fast.ai官方說明首頁</center>** ### <font color =Blue>2. 載入Fast.ai教材</font>     首先要建立開發環境,所以我們可以參考Fast.ai所提供的[簡易Colab設定](https://course.fast.ai/start_colab.html)文件。可以從文件上的連結打開Colab,或是在gooogle上搜尋(很好找!)。不過因為Colab是Google的服務,所以記得準備好你的Google帳號以供登入。  **<center>Colab歡迎畫面</center>**     從Colab的歡迎頁面可以看到,他提供**GitHub**、**GoogleDrive**...等五種匯入資源的方式。而Fast.ai就將教材學習的程式碼放在GitHub上供人使用,點選GitHub輸入`Fastai/course-v3`進行搜尋,找到這次上課所需要的教材,這次要上的課程是**Lessons1 - What's your pet**,所以選取**Lessons1(紅色匡)**。(**<font color=red>※如果發現輸入`Fastai/course-v3`後,找不到nbs/d1/lesson1-pets.ipynb的話。請把下拉式選單Repository**點開,找到***Fastai/course-v3**點入即可找到。</font>**)  **<center>選擇【Lesson - What's your pet】課程</center>** **(※由於這邊是使用GitHub匯入課程教材,所以也需要準備一組GitHub帳號,等等會用到。)**     接下來就可以看到正式的教材畫面了。*順帶一提,如果發現使用介面是簡體中文,但你比較喜歡~~原味~~英文的話,可以在Colab上方的 <kbd>**幫助**</kbd> 欄位中,找到 <kbd>**查看英文版**</kbd> ,點下去就能夠轉換成英文介面了。*  **<center>進入【Lesson - What's your pet】課程教材畫面</center>**     在這裏我們可以發現,上方有一個被🚫的磁碟圖示,這代表你並沒有這個教材文件的所有權限。所以建議從<kbd>**File**</kbd>選取<kbd>**Save a copy in Drive...**</kbd>,將Fast.ai教材文件轉移到自己的**Google Drive**上,這樣就可以隨自己的想法編輯Jupyther Notebook了。 ### <font color =Blue>3. 啟用GPU</font>     最後一項調整就是先前提到過的**GPU與TPU**。Colab十分佛心的提供免費GPU、TPU給初學者使用,如果要開啟可以從上方欄位找到<kbd>**Runtime**</kbd>選擇<kbd>**Change runtime type**</kbd>就可以看到下面這個畫面:  這裡不僅可以選擇自己要使用<kbd>**GPU**</kbd>還是<kbd>**TPU**</kbd>,還可以設定你的**Jupyter Notebook**要用<kbd>**Python2**</kbd>或是<kbd>**Python3**</kbd>來編譯。我是使用GPU的選項,保存好設定後,可以在右上角的<kbd>**Connect**</kbd>點選<kbd>**Connect hosted runtime**</kbd>,你會發現原本的Connect變成<img width="90" height="30" src="https://i.imgur.com/wVZYi4e.png"/>這個圖示,接下來可以透過輸入`!nvidia-smi`查看我們所使用的GPU型號:(※這個步驟可以先省略) ``` Thu Sep 12 03:30:56 2019 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 430.40 Driver Version: 418.67 CUDA Version: 10.1 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 Tesla K80 Off | 00000000:00:04.0 Off | 0 | | N/A 34C P8 28W / 149W | 0MiB / 11441MiB | 0% Default | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| | No running processes found | +-----------------------------------------------------------------------------+ ``` 至於Colab上TPU的相關訊息,可以參考這篇[《Using a TPU in Google Colab》](https://medium.com/@jannik.zuern/using-a-tpu-in-google-colab-54257328d7da),裡面寫的不錯,有興趣可以自己去研究研究。 ### <font color =Blue>4. 小結</font>     一開始其實只是單純覺得這個課程很棒,想說紀錄一下可以順便複習小聚所學到的東西。可是在寫這篇的過程當中,不知不覺越寫越多,為了不要讓讀者看起來有大雜燴的感覺,所以決定多分幾篇來寫。這麼做不但可以讓知識點比較系統化,也能夠寫得比較清晰一點。**我不敢保證我所Search到的100%正確,如果發現有誤歡迎來交流一下。我認爲多交流,比起自己封閉的學習更加來得有效率,每個人都是我的導師**。下一篇[**【入門文】Fast.ai學習筆記(二)Practical Deep Learning for Coders, v3**將會介紹Fast.ai的第一門深度學習課程**Lessons1 - What’s your pet**,可以想像我的雞婆個性,應該會補充更多的知識點吧哈哈哈,敬請期待吧。 ### <font color =Blue>5. 資料來源</font> [1]https://en.wikipedia.org/wiki/Collaboratory [2]https://www.fast.ai [3]https://en.wikipedia.org/wiki/.ai [4]https://en.wikipedia.org/wiki/Project_Jupyter [5]https://medium.com/@jannik.zuern/using-a-tpu-in-google-colab-54257328d7da ### [回首頁](https://hackmd.io/@s97wzpzMREOn_q9CTUtCDg/LaiChunJing)
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.