pytorch torch.expand和torch.repeat的區(qū)別詳解
1.torch.expand
函數返回張量在某一個維度擴展之后的張量,就是將張量廣播到新形狀。函數對返回的張量不會分配新內存,即在原始張量上返回只讀視圖,返回的張量內存是不連續(xù)的。類似于numpy中的broadcast_to函數的作用。如果希望張量內存連續(xù),可以調用contiguous函數。
例子:
import torch x = torch.tensor([1, 2, 3, 4]) xnew = x.expand(2, 4) print(xnew)
輸出:
tensor([[1, 2, 3, 4],
[1, 2, 3, 4]])
2.torch.repeat
torch.repeat用法類似np.tile,就是將原矩陣橫向、縱向地復制。與torch.expand不同的是torch.repeat返回的張量在內存中是連續(xù)的。
例子1:
將張量橫向的復制
import torch x = torch.tensor([1, 2, 3]) xnew = x.repeat(1,3) print(xnew)
輸出:
tensor([[1, 2, 3, 1, 2, 3, 1, 2, 3]])
例子2:
將張量縱向的復制
import torch x = torch.tensor([1, 2, 3]) xnew = x.repeat(3,1) print(xnew)
輸出:
tensor([[1, 2, 3],
[1, 2, 3],
[1, 2, 3]])
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Python3利用openpyxl讀寫Excel文件的方法實例
這篇文章主要給大家介紹了關于Python3利用openpyxl讀寫Excel文件的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-02-02