2.8 將tensor移動到GPU上


在Pytorch中,所有對tensor的操作,都是由GPU-specific routines完成的。tensor的device屬性來控制tensor在計算機中存放的位置。

我們可以在tensor的構造器中顯示的指定tensor存放在GPU上

 

 也可以用 to 方法把一個CPU上的tensor復制到GPU上

 

 這行代碼在GPU上創建了一個新的,內容一致的tensor。

在GPU上的tensor的計算,就可以被GPU加速了。同樣的,在GPU上的tensor會對應一個新的類型。如 torch.FloatTensor 對應 torch.cuda.FloatTensor.

基本,CPU和GPU上的tensor對應的API都是一樣的,這樣降低了開發成本。

對於多GPU的電腦,也可以通過0起始的索引顯式的指定使用的GPU

 

 指定device后,所有對tensor的操作都會在GPU上執行

 

 要注意的是:points_gpu 在計算完成后不會被移回CPU。上面這行代碼,做的事情是:

  1 把points復制到GPU

  2 在GPU上創建一個新的tensor,用來接收計算結果

  3 返回一個指定計算結果的句柄

所以,如果對結果加一個常數,還是在GPU上進行的,而不會返回到CPU

 

 

如果想把tensor返回給CPU,需要顯式的指定device參數

 

 調用 to方法太麻煩了,我們可以使用簡寫的 cuda 方法 和 cpu 方法來對tensor進行移動。

 

 但是,使用 to 方法,我們可以通過指定 dtype和device參數,實現同時改變tensor的數據類型和存儲位置。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM