---
# System prepended metadata

title: Google Colab相關設定
tags: [Python, Colab]

---

# Google Colab相關設定
from https://hackmd.io/oLMiNzPMS5CVTm0NK-XwZA?both, [[wiimax @ hackmd](https://hackmd.io/@wiimax)]

>colaboratory使用自訂資料檔案的方法
###### tags: `Colab` `Python`

[TOC]

## 說明

程式入門者對程式環境設定一直是個不小的坑與門檻，如果有頻繁在各種桌機、筆電、OS系統執行Python程式，設定環境費時費力。Colab是以雲端網頁呈現的Python筆記本形式，類似Jupyter Notebook，但開啟時其實是幫你開啟一個Linux虛擬機，加上可以調用免費GPU算力，可以輕鬆達到跨平台使用的目的，也不只是可用於資料科學領域，對於程式日常開發而言也是好幫手。

### 優缺點比較

- 優點
    - 使用雲端空間，不用自己的電腦空間。
    - 可免費用Colab的GPU算力，執行深度學習速度有感。
    - 可以跳過Mac、Win的各種坑，設定省心。
    - 手機平板也可以執行，但建議只用來看成果，因為容易斷線且優化待加強。
- 缺點
    - 佔用Google雲端硬碟容量，有些學校有提供學生免費申請Gmail教育帳號，使用空間無限大。如需付費資訊參閱[Google說明](https://one.google.com/about)。
    - Colab設定其實也有不少坑，下一篇會分享實用的填坑技巧。
    - 雲端服務一定要有網路。

## 如何開啟Colab筆記本?

### 從Google搜尋Colab新增或開啟檔案
- 將`colab`關鍵字餵狗(Google)後出現的Google Colab即是，歡迎頁面目前已經改為繁體中文介面，或直接依提示視窗選擇用範例、Google雲端硬碟、GitHub或本機上傳。
![](https://i.imgur.com/IkX1tK7.png)


### 從Google雲端資料夾開啟Colab

1. 至您的雲端資料夾，如果有任何副檔名是`.ipynb`的檔案，就可以用Colab服務開啟此筆記本。
1. 以滑鼠右鍵點選`*.ipynb`檔案，選擇開啟工具，如果先前有「連結」過，就會有「Google Colaboratory」的選項
    - ![](https://i.imgur.com/AfAsIwl.png)



### 從超連結開啟Colab

- 如果在Google雲端硬碟的`.ipynb`沒有出現像上圖的Colab選項，可以進行以下步驟：
    - 點選「連結更多應用程式」，搜尋`Colab`並連結Colab。
      ![](https://i.imgur.com/Yw96xLN.png)
      ![](https://i.imgur.com/Cn90jT6.png)

    - 如果連結Colab仍未切換開啟目標*ipynb檔案，很有可能是您本來就尚未登入google，請記得先登入google帳戶唷。
    

## 常用相關配置
### 更改為GPU運算
Colab有意提供GPU運算資源給願意投入深度學習領域的開發者，如需使用免費GPU資源可依下方式更換。但如果您的程式未用到GPU資源，目前Golab版本會在右下方提示建議您改回CPU運算(當然也可以不改，目前)。
- 點選「執行階段」-「變更執行階段類型」 
    - ![](https://i.imgur.com/Fasesyk.png)
- 選擇變更為GPU運算
  選單下方有提示"如要發揮Colab的最大效益，請避免在不必要的情況下使用GPU"。(如非深度學習其實沒必要使用GPU喔)
    - ![](https://i.imgur.com/AK92WM1.png)
- 查看GPU資訊
    - `!nvidia-smi`
      嘿嘿這次要到Tesla P100，以前常開到Tesla K80，Google也有不斷升級超佛心!
      ![](https://i.imgur.com/twdGwyc.png)
### 更改為英文版(選用)
-  建議改成英文版，原因有2:
    - 預設繁體中文翻譯不見得看得懂。
    - 繁體中文目前排版不是等間距字元!!(希望以後會改)
      ![](https://i.imgur.com/P7004qM.png)

## Colab 操作指南

- 當您 Google 搜尋 Colab ，[歡迎頁面]( https://colab.research.google.com/notebooks/intro.ipynb)介紹了該應用的用途與多種範例。
  ![](https://i.imgur.com/FIvE7I3.png)
- 文字欄位使用 MarkDown 語法編輯， 程式碼欄位可輸入程式，按下 `Play`按鍵或`Shift + Enter`，執行結果會在程式碼下方顯示。
  ![](https://i.imgur.com/yQ9hMa2.png)

- 側邊欄目前有三個功能
    1. 目錄，目錄的產生來自您文字欄位的 MarkDown 語法設定的`# 大標`、 `# 次標`，另外您文字 Cell 也可以依照您的標題次序展開/收合。
      ![](https://i.imgur.com/TWPjhZQ.png)
    2. 程式碼片段，Colab 有許多奇技淫巧，在此處您可以搜尋、閱讀解說、將範例插入程式碼區塊。建議可以花時間逐一瀏覽，讓腦海有這些用途概念以便伺機採用。
      ![](https://i.imgur.com/mwYRJIs.png)
    3. 檔案，是我覺得最精彩的功能，前面提到每個 Colab 其實是 Google 幫您開了雲端虛擬 Linux 主機，如果您有 Linux 基礎則您運用時如虎添翼，終端機（Terminal）指令只要在前方加入`!`+`指令` 即可，例如`!pip install Flask`，並且支援 `!cp` 、 `!mv` 、 `!git clone` 等指令。上傳/下載檔案也可直接在此側分頁操作，或設計程式介面在Colab的Cell供使用者操作(程式碼片段的分頁有範例)。
      ![](https://i.imgur.com/mwrCOAr.png)
- 更多功能仍請參閱[歡迎頁面]( https://colab.research.google.com/notebooks/intro.ipynb)，下方很多範例有關機械學習/深度學習，有興趣可以開啟執行，或許會開啟您邁向AI領域之路。






## 如何讓您的Google雲端硬碟檔案與Colab連結?

### 方法1. 先看懶人包
- 以下為執行碼複製貼上，將`os.chdir()`改您的Google雲端硬碟資料夾位址即可)

```python
#Colab資料夾設定方法
#!pip install google.colab #如未安裝取消註解後執行
import os

from google.colab import drive
drive.mount('/content/drive')

##出現提示欄進行授權

os.chdir('/content/drive/My Drive/{你的google雲端硬碟資料夾位址}') #切換該目錄
os.listdir() #確認目錄內容
```

### 細部說明
- Colab在說明中有提到，當你開啟Colab互動環境，其實是開啟了一個虛擬機，你可以透過與雲端硬碟連結。
- 另外Colab的提示只有下方兩行，執行後授權Colab與你的google雲端硬碟帳戶連結。
    ```python
    from google.colab import drive
    drive.mount('/content/drive')
    ```
- 過程中會出現等待您的授權碼，請點選連結，複製授權碼貼回Colab等待的對話框即可。
  ![](https://i.imgur.com/LnQ0sC4.png)
- 進一步讓Colab能存取你指定的google雲端硬碟路徑，你需要執行以下程式碼:
    ```python
    import os
    os.chdir('/content/drive/My Drive/{你的google雲端硬碟資料夾位址}') 
    ```
- 要確定是否順利切換到指定目錄，可以用`os.listdir()`檢查目錄之下檔案是否如預期，如果看到自己的資料夾目錄代表成功。
    ```python
    os.listdir() #確認目錄內容
    ```

- 注意事項:如果Colab要從外部下載安裝第三方套件(如Talib)，**記得先安裝好Talib再切換到自己的雲端硬碟目錄**。

### 方法2. 直接點圖示完成連線 (NEW!)
- 因為 Google Colab 為雲端服務持續更新，介面更新也不會特別更您說，目前的最新狀態是: 側邊欄的 Google 雲端硬碟圖示點下去，確認您授權操作Google 雲端硬碟，就大功告成了!
  ![](https://i.imgur.com/YYYi1zW.png)



## Colab繪圖如何正常顯示繁體中文?
[![](https://i.imgur.com/pQnQ4tG.png)](https://colab.research.google.com/github/willismax/matplotlib_show_chinese_in_colab/blob/master/matplotlib_show_chinese_in_colab.ipynb)

### 懶人包

```python=
# Colab 進行matplotlib繪圖時顯示繁體中文
# 下載台北思源黑體並命名taipei_sans_tc_beta.ttf，移至指定路徑
!wget -O taipei_sans_tc_beta.ttf https://drive.google.com/uc?id=1eGAsTN1HBpJAkeVM57_C7ccp7hbgSz3_&export=download
!mv taipei_sans_tc_beta.ttf /usr/local/lib/python3.7/dist-packages/matplotlib//mpl-data/fonts/ttf

from matplotlib.font_manager import FontProperties
import matplotlib.pyplot as plt 

# 自定義字體變數
myfont = FontProperties(fname=r'/usr/local/lib/python3.7/dist-packages/matplotlib/mpl-data/fonts/ttf/taipei_sans_tc_beta.ttf')

# !!!!後續在相關函式中增加fontproperties=myfont屬性即可!!!!

```

### 說明
matplotlib繪圖要顯示中文需要修改相關設定，經過一番苦心找到解法，並且使用開源且可商用的「台北黑體」(感謝 [翰字鑄造JT Foundry](https://sites.google.com/view/jtfoundry/)）。

1. 下載指定字體置於colab指定位置
    2. 以!wget下載字體
    3. 存置Colab路徑： /usr/local/lib/python3.7/dist-packages/matplotlib/mpl-data/fonts/ttf
4. 各種文字輸出的函數加入fontproperties屬性，如:
    ```
    plt.title("自訂標題",fontproperties=myfont) 
    plt.ylabel("自訂y軸",fontproperties=myfont) 
    plt.xlabel("自訂x軸",fontproperties=myfont) 
    ax.annotate('註解說明',fontproperties=myfont)
    ax.set_title('自訂標題',fontproperties=myfont)
    ax.set_xlabel('自訂x軸',fontproperties=myfont)
    ax.set_ylabel('自訂y軸',fontproperties=myfont)
    複製cell並執行即可
    ```
    ![](https://i.imgur.com/iLoarLN.png)
    ![](https://i.imgur.com/BwsiquZ.png)




![](https://i.imgur.com/cL3Tjgq.png)


## 參考
- https://hackmd.io/@wiimax/S1VGctnSS
- https://github.com/willismax/matplotlib_show_chinese_in_colab/blob/master/matplotlib_show_chinese_in_colab.ipynb
- https://medium.com/marketingdatascience/%E8%A7%A3%E6%B1%BApython-3-matplotlib%E8%88%87seaborn%E8%A6%96%E8%A6%BA%E5%8C%96%E5%A5%97%E4%BB%B6%E4%B8%AD%E6%96%87%E9%A1%AF%E7%A4%BA%E5%95%8F%E9%A1%8C-f7b3773a889b
- https://www.jianshu.com/p/fc9a502ad243