一. 概述
本文將介紹一套非常好用的一個免費資源,由 Google 所提供的 Colab 這項雲端服務,透過此平台可以幫助我們加快機器學習的開發、並利用其平台資源能夠隨時隨地進行應用,實在相當方便 !! 為了大力推廣這項服務,而特別添加至系列博文中來分享給各位讀者。若熟悉此項服務,勢必能在機器學習開發上,給予相當大的幫助 !! 像是透過 Colab 訓練出一套物件偵測模組後,就可以直接應用至 i.MX8 開發平台上 !! 而本系列最終誠摯地希望各位讀者能夠藉由此項雲端服務來打造屬於自己的 AI 學習庫 !!
如下圖文章架構圖所示,此架構圖隸屬於 i.MX8M Plus 的方案博文中,並屬於 Third Party 軟體資源的 Google Colab 密技大公開 之部分,目前章節介紹 “Colab 使用介紹”。
若新讀者欲理解更多人工智慧、機器學習以及深度學習的資訊,可點選查閱下方博文
大大通精彩博文 【ATU Book-i.MX8系列】博文索引
Colab 系列博文-文章架構示意圖
二. Google Colab 介紹
Google Colaboratory 是一個 Google 免費提供的代碼服務平台,簡稱 Colab。由 Jupyter Notebook 與 Docker 所構成的 Python 代碼編寫器,具有強大的跨平台與整合、自由操作等特性,非常適合開發初學者。
優勢 :
▼ Colab 操作方式簡單,類似 Jupyter Notebook 操作
▼ Colab 屬於 Docker 架設的虛擬環境為 Linux 系統,可任意架設 Python 套件。
▼ Colab 提供 CPU、GPU、TPU 等硬體設備,開發者能夠任意切換使用。
▼ Colab 能夠自由地取存 Google Driver 雲端資料,並自動將代碼存放於雲端中。
▼ Colab 善用於數據分析、圖表繪製、機器學習。
劣勢 :
▼ Colab 屬於 Docker 架設的虛擬環境為 Linux 系統,無法保存資料。
( 因 Colab 免費版有使用時間限制,在某個時間會關掉虛擬環境,故需要配合第三方雲端來保存資料 )
▼ Colab 提供 GPU、TPU 等硬體設備不夠強大、且有時間限制,僅適用小型訓練。
( 目前 Colab 僅提供性能不錯的 Tesla P100 ,約能提供每秒 5 TFLOPS 的運算次數,但相比於現今高階顯卡等級仍有一段差距 )
1. 如何使用 :
點選此連結(https://colab.research.google.com),以 Google 帳號登入後,即可新增筆記本。
當前 Colab 環境為 Python 3.8 + TensorFlow 2.5.0
2. 執行代碼 :
Jupyter Notebook執行方式一樣,僅須 點選儲存格(灰色視窗) 位置,按下 “Shift+Enter” 即開始運行。
舉例 : 輸入 python 代碼,按下 “Shift+Enter” 運行後,即可直接看到結果。
3. 左側功能列 :
左側的功能列,依序作用為目錄、搜尋與取代、程式碼片段、變數、檔案五大功能。這裡大力推薦 Colab 所設計的 “目錄” 功能,能夠給予一目了然的程式筆記本的體驗 !! 如下方右圖,相當實用。
另外,“變數” 的功能也是相當便利的設計,能夠顯示當前的系統所操作的變數,對於程式開發者真的非常友善 !! 並搭配 “檔案” 的功能,更能隨心所欲地操作這個平台 !!
4. 上方功能列 :
上方的功能列,依序為檔案、編輯、檢視畫面、插入、執行階段、工具、說明等七項。
這裡功能不外乎為新增、載入、儲存筆記本、收合區段、展開區段、全部執行、中止執行、執行過的程式碼歷史紀錄等等操作。
必須強調的是 執行階段> “變更執行階段類型” 的功能,能夠自由的切換 Google 所提供的硬體設備,如 CPU (2x 2.2Ghz)、GPU (Nvidia K80、T4、P4、P100)、TPU。
5. 付費會員 :
Colab 亦有提供進階的付費服務 ; 如下圖所示, Pro 能夠給予更強大且更長時間的 GPU 使用權限。 Pro + 甚至提供背景執行的服務 !! 可說是雲端服務的一項首選 !!
( 順帶一提,若免費版的用戶,超過 GPU 的使用時間將會限制 24 小時的使用權限 )
三. 基礎操作
Colab 本質是由 Docker 所建置的 Linux 環境,故基本操作就與作業系統差不多。詳細用法請參照鳥哥 !!
下列附上 程式儲存格的寫法(灰底) 以及 運行結果(灰底後的圖示),複製貼上至 Colab 即可使用 !!
1. 基本操作 :
(1) 移動當前位置
%cd path
(2) 檢視當前資訊
指令 : ls / du / pwd / df
! ls
(3) 新增檔案
指令 : touch / cat / echo / dd
! touch FileName
(4) 複製/移動/刪除檔案、資料夾
指令 : cp / mv / rm
! cp source_file_path destination_file_path
(5) 新增/移除資料夾
指令 : mdkir / rmdir
! mkdir FolderName
(6) 壓縮、解壓縮檔案
指令 : tar / gz / tar.gz / bz / tar.bz / 7z / zip / rar
參考連結 : http://note.drx.tw/2008/04/command.html
! tar xvf FileName.tar
(7) 權限設定
指令 : chmod / chown
! chmod -R 777 FileName
(8) 尋找檔案
指令 : find / grep
! find -name FileName
2. 如何查看硬體資源 :
(1) 檢視 CPU 資訊
print("CPU Status:")
!cat /proc/cpuinfo | grep model\ name # 檢查CPU資訊
(2) 檢視 GPU 資訊
! nvidia-smi
(3) 檢視硬碟資訊
print("\nDisk Status: ")
! df -lh # 檢查磁碟空間
(4) 檢視記憶體資訊
print("\nRAM Status:")
! free -h # 檢查記憶體大小
3. 如何查看軟體資源 :
(1) 檢視 python 已安裝套件
! pip3 list
(2) 檢視 Linux 已安裝套件
! apt list --installed
4. 如何安裝軟體資源 :
(1) 安裝 Python 套件
! pip3 install package
(2) 安裝 Linux 套件
! apt-get install -y package
5. 如何重新啟動環境 :
import os
os.kill(os.getpid(), 9) # 重啟環境 解決版本安裝衝突問題
6. 如何下載檔案 :
(1) 利用 wget 下載檔案
! wget -O FileName Download_Link
(2) 利用 gdown 下載檔案
Linux 指令方式 :
! gdown Download_Link -O FileName
Python 指令方式 :
import gdown
gdown.download( Download_Link, FileName )
(3) 利用 git 下載整個 GitHub 資料夾
! git clone github_link
example link : https://github.com///
(4) 利用 svn 下載單一 GitHub 檔案或資料夾
安裝 svn 套件 :
! apt-get install subversion
修改 github 路徑 :
# >> 将 /tree/master/ 换成 /trunk/
下載單一資料夾
! svn co https://github.com/username/projectname/trunk/folder
下載單一檔案
! svn co https://github.com/username/projectname/trunk/FileName create_folder_name --depth empty
! svn up create_folder_name
須建立一個空的資料夾,以獨立更新該檔案的方式下載。
四. 結語
本文主要目的是推廣 Colab 的實用性為主,一開始介紹 Colab 該如何使用、該如何進行編譯、如何選用 GPU 運算以及介面排版等簡易說明。緊接著, Colab 後台主機亦屬於 Linux 環境, 故提供一系列 Linux 的基本操作指令給讀者作參考,其用意是希望讀者可以將此系列博文當作一套工具書來查閱,來達到快速應用之目的。後續文章,將說明在 Colab 平台中使用 python 代碼的一些應用技巧,像是如何畫出直方圖,如何在 Colab 上製作小型的選擇 Button 等等應用,敬請期待 !!
五. 參考文件
[1] 官方文件 - Colaboratory 官網
[2] 第三方文件 -鳥哥的首頁
如有任何相關 Colab 技術問題,歡迎至博文底下留言提問 !!
接下來還會分享更多 Colab 的技術文章 !!敬請期待 【ATU Book-i.MX8 系列 - Colab 】 !!
評論