2022年7月8日 星期五

[LAB]Google colab CPU vs. GPU vs. TPU

讀到網路上一篇文章提到,google colab免費版就有支援CPU/GPU/TPU的運算資源。第一次聽到TPU,原來是google開發的晶片,專門給人工智慧、機器學習和深度學習等的科學項目,提供更佳的處理效果。 

修改google colab的運算資源:



剛好之前在colab練習寫了一個人臉辨識的小程式,利用deepface模組,可以辨識圖片中人像的情緒、年齡、種族和性別。並透過不同的運算資源來記錄程式的運算時間,原本以為會是TPU > GPU > CPU,但結果是GPU > TPU ~= CPU ?會不會是因為TPU在處理深度學習模型訓練上才會有明顯效果,還在研究中... 下次來練習寫個模型訓練來測試看看。

程式碼:
import time
import cv2
from deepface import DeepFace

start = time.time()

img = cv2.imread('test3.png') # 讀取圖片
try:
analyze = DeepFace.analyze(img)
print("情緒:",analyze["dominant_emotion"],"年齡:",analyze["age"])
print("種族:",analyze["dominant_race"],"性別:",analyze["gender"])
except:
pass

end = time.time()
print(end - start)

CPU 3.90秒

GPU 1.63秒


TPU 3.58秒

======================Round2==========================

有google colab真的太方便,馬上可以來檢驗上述的猜測,是否TPU更適合放在訓練模型上。直接使用tensorflow於colab初學者範例來跑跑看。結果竟然是CPU > GPU > TPU 為什麼?

CPU 19.84秒

GPU 21.96秒

TPU 24.26秒


======================Round3==========================
如果只計算訓練模型的時間,是否會有變化?結果GPU > TPU > CPU

CPU 51.15秒

GPU 40.76秒

TPU 45.80秒




沒有留言: