您好,登錄后才能下訂單哦!
這篇文章主要介紹“Tensor和NumPy相互轉換的方法是什么”,在日常操作中,相信很多人在Tensor和NumPy相互轉換的方法是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Tensor和NumPy相互轉換的方法是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
我們很容易用 numpy() 和 from_numpy() 將 Tensor 和NumPy中的數組相互轉換。
但是需要注意的點是: 這兩個函數所產?生的的 Tensor 和NumPy中的數組共享相同的內存(所以他們之間的轉換很快),改變其中?個時另?個也會改變!!!
還有一個常用的將NumPy中的array轉換成 Tensor 的方法就是 torch.tensor() , 需要注意的
是,此方法總是會進行數據拷貝(就會消耗更多的時間和空間),所以返回的 Tensor 和原來的數據不再共享內存。
使用numpy()將 Tensor 轉換成NumPy數組:
a = torch.ones(5) b = a.numpy() print(a, b) a += 1 print(a, b) b += 1 print(a, b)
輸出為:
tensor([1., 1., 1., 1., 1.]) [1. 1. 1. 1. 1.]
tensor([2., 2., 2., 2., 2.]) [2. 2. 2. 2. 2.]
tensor([3., 3., 3., 3., 3.]) [3. 3. 3. 3. 3.]
通過使用 from_numpy() 將NumPy數組轉換成 Tensor :
import numpy as np a = np.ones(5) b = torch.from_numpy(a) print(a, b) a += 1 print(a, b) b += 1 print(a, b)
[1. 1. 1. 1. 1.] tensor([1., 1., 1., 1., 1.], dtype=torch.float64)
[2. 2. 2. 2. 2.] tensor([2., 2., 2., 2., 2.], dtype=torch.float64)
[3. 3. 3. 3. 3.] tensor([3., 3., 3., 3., 3.], dtype=torch.float64)
所有在CPU上的 Tensor (除了 CharTensor )都支持與NumPy數組相互轉換。
此外上面我們提到還有一個常用的方法就是直接用 torch.tensor() 將NumPy數組轉換成 Tensor ,需要
注意的是該方法總是會進行數據拷貝,返回的 Tensor 和原來的數據不再共享內存。
c = torch.tensor(a) a += 1 print(a, c)
輸出為:
[4. 4. 4. 4. 4.] tensor([3., 3., 3., 3., 3.], dtype=torch.float64)
到此,關于“Tensor和NumPy相互轉換的方法是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。