Tensor和NumPy相互轉(zhuǎn)換的方法
我們很容易用 numpy() 和 from_numpy() 將 Tensor 和NumPy中的數(shù)組相互轉(zhuǎn)換。
但是需要注意的點(diǎn)是: 這兩個(gè)函數(shù)所產(chǎn)?生的的 Tensor 和NumPy中的數(shù)組共享相同的內(nèi)存(所以他們之間的轉(zhuǎn)換很快),改變其中?個(gè)時(shí)另?個(gè)也會改變!?。?/p>
還有一個(gè)常用的將NumPy中的array轉(zhuǎn)換成 Tensor 的方法就是 torch.tensor() , 需要注意的
是,此方法總是會進(jìn)行數(shù)據(jù)拷貝(就會消耗更多的時(shí)間和空間),所以返回的 Tensor 和原來的數(shù)據(jù)不再共享內(nèi)存。
Tensor轉(zhuǎn)NumPy
使用numpy()將 Tensor 轉(zhuǎn)換成NumPy數(shù)組:
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.]
NumPy數(shù)組轉(zhuǎn) Tensor
通過使用 from_numpy() 將NumPy數(shù)組轉(zhuǎn)換成 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數(shù)組相互轉(zhuǎn)換。
此外上面我們提到還有一個(gè)常用的方法就是直接用 torch.tensor() 將NumPy數(shù)組轉(zhuǎn)換成 Tensor ,需要
注意的是該方法總是會進(jìn)行數(shù)據(jù)拷貝,返回的 Tensor 和原來的數(shù)據(jù)不再共享內(nèi)存。
c = torch.tensor(a) a += 1 print(a, c)
輸出為:
[4. 4. 4. 4. 4.] tensor([3., 3., 3., 3., 3.], dtype=torch.float64)
到此這篇關(guān)于Tensor和NumPy相互轉(zhuǎn)換的方法的文章就介紹到這了,更多相關(guān)Tensor和NumPy相互轉(zhuǎn)換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
如何基于Python代碼實(shí)現(xiàn)高精度免費(fèi)OCR工具
這篇文章主要介紹了如何基于Python代碼實(shí)現(xiàn)高精度免費(fèi)OCR工具,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06Python雙精度浮點(diǎn)數(shù)運(yùn)算并分行顯示操作示例
這篇文章主要介紹了Python雙精度浮點(diǎn)數(shù)運(yùn)算并分行顯示操作,涉及Python數(shù)學(xué)運(yùn)算及顯示相關(guān)操作技巧,注釋備有詳盡的說明,需要的朋友可以參考下2017-07-07地圖可視化神器kepler.gl python接口的使用方法
這篇文章主要介紹了python 地圖可視化神器kepler.gl近期重要更新的的相關(guān)資料,幫助大家利用python實(shí)現(xiàn)地圖可視化,感興趣的朋友可以了解下2020-12-12Pandas中map(),applymap(),apply()函數(shù)的使用方法
本文主要介紹了Pandas中map(),applymap(),apply()函數(shù)的使用方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02