torch中的copy()和clone()


torch中的copy()和clone()

1、torch中的copy()和clone()

y = torch.Tensor(2,2):copy(x) ---
1

修改y並不改變原來的x

y = x:clone()
1


修改y也不改變x

y = x
1

修改y這個時候就開始改變x了
注意,官網中Returns a clone of a tensor. The memory is copied.內存被復制,也即重新分配了一份內存個y,所以y改變x不改變,對於copy是一樣的.copy允許復制的維度不一樣,但是元素個數必須是相同的。
對於Python中的深淺拷貝之類的,看連接鏈接
Python中的拷貝來講,例子如下


對於數字賦值和列表賦值是有很大區別的

torch中對於直接賦值的這種操作一定要小心,先看看是不是需要直接賦值,還是重新開辟一塊內存來存放
2
torch中的type()函數,如果沒有傳入參數,表示查看Tensor的數據類型
如果傳入了參數,表示將Tensor轉換為想要的數據類型,數據類型由參數來指定

3 torch中的image的scale函數也是輸入參數不同最后的scale方法也是不同的,參考下圖說明

4、torch中的Tensor所有操作例如narrow等操作,都是在原來的Tensor的基礎上進行的,所以如果想要真正的復制一個Tensor就用copy和clone,如果用narrow這種操作之后經常會導致內存不連續,導致后面很多操作失效,這時候用copy和clone復制一下即可。
---------------------
作者:枯葉蝶KYD
來源:CSDN
原文:https://blog.csdn.net/u013548568/article/details/79145401
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

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



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