前幾天的關於圖片資訊張量儲存的部分,我們只有提到在Day 03 的章節中提到它是被儲存於電腦的記憶體空間中,但事實上在前幾天的介紹中我們所提到的相關操作的張量其實都是儲存於電腦中CPU(中央處理器)
的記憶體空間,但其實張量也可以儲存於GPU(圖形處理器,俗稱顯卡)
的記憶體中,利用GPU的記憶體來儲存張量的好處在於要進行運算時,可進行大量平行且快速的運算.現在市面上主要的GPU廠商有三間分別為Nvidia,AMD及intel,但由於PyTorch在支援CUDA的GPU上有較好的加速效果,所以運行下列程式時需注意電腦的相關設備.
points_gpu = torch.tensor([1.0, 7.0], [3.0, 9.0], device='cuda')
points_gpu = points.to(device='cuda')
在電腦有一個以上GPU時,我們可以指定要將張量分配到哪個GPU,編號從0號開始.
points_gpu = points.to(device='cuda:1')
points = 3 * points
points_gpu = 3 * points.to(device='cuda')
points_gpu 張量並不會將值回傳CPU中. points_gpu 的計算主要有三個過程:
points_cpu = points_gpu.to(device='cpu')
今天我的學習筆記中所提到的張量的轉移或許在簡單的專案中,將程式放在CPU或GPU中計算並沒有太大的差異,但只要專案變得夠大,那麼進行計算的時間就有可能差異個幾小時甚至於幾天之久,在進行進階的人工智慧相關學習有GPU會加速於模型的訓練,當然Google colab中所提供的免費GPU資源也讓我們在學習上方便許多,畢竟對於我們學生而言省錢就是王道哈哈哈.