Tensor 和 NumPy 相互轉(zhuǎn)換的實現(xiàn)
我們很容易用numpy()和from_numpy()將Tensor和NumPy中的數(shù)組相互轉(zhuǎn)換。但是需要注意的一點是: 這兩個函數(shù)所產(chǎn)生的Tensor和NumPy中的數(shù)組共享相同的內(nèi)存(所以他們之間的轉(zhuǎn)換很快),改變其中一個時另一個也會改變!
1. Tensor 轉(zhuǎn) NumPy
a = torch.ones(6) 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. 1. 1.] tensor([2., 2., 2., 2., 2., 2.]) [2. 2. 2. 2. 2. 2.] tensor([3., 3., 3., 3., 3., 3.]) [3. 3. 3. 3. 3. 3.]
2. NumPy 數(shù)組轉(zhuǎn) Tensor
import numpy as np a = np.ones(7) b = torch.from_numpy(a) print(a, b) a += 1 print(a, b) b += 1 print(a, b)
[1. 1. 1. 1. 1. 1. 1.] tensor([1., 1., 1., 1., 1., 1., 1.], dtype=torch.float64) [2. 2. 2. 2. 2. 2. 2.] tensor([2., 2., 2., 2., 2., 2., 2.], dtype=torch.float64) [3. 3. 3. 3. 3. 3. 3.] tensor([3., 3., 3., 3., 3., 3., 3.], dtype=torch.float64)
3. torch.tensor() 將 NumPy 數(shù)組轉(zhuǎn)換成 Tensor
直接用torch.tensor()將NumPy數(shù)組轉(zhuǎn)換成Tensor,該方法總是會進(jìn)行數(shù)據(jù)拷貝,返回的Tensor和原來的數(shù)據(jù)不再共享內(nèi)存。
import numpy as np a = np.ones((2,3)) c = torch.tensor(a) a += 1 print('a:',a) print('c:',c) print(id(a)==id(c))
a: [[2. 2. 2.] [2. 2. 2.]] c: tensor([[1., 1., 1.], [1., 1., 1.]], dtype=torch.float64) False
到此這篇關(guān)于Tensor 和 NumPy 相互轉(zhuǎn)換的實現(xiàn)的文章就介紹到這了,更多相關(guān)Tensor 和 NumPy 相互轉(zhuǎn)換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python如何求數(shù)組連續(xù)最大和的示例代碼
這篇文章主要介紹了python如何求數(shù)組連續(xù)最大和的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02Python pygame實現(xiàn)中國象棋單機(jī)版源碼
今天給大家?guī)淼氖顷P(guān)于Python實戰(zhàn)的相關(guān)知識,文章圍繞著用Python pygame實現(xiàn)中國象棋單機(jī)版展開,文中有非常詳細(xì)的代碼示例,需要的朋友可以參考下2021-06-06在ubuntu16.04中將python3設(shè)置為默認(rèn)的命令寫法
這篇文章主要介紹了在ubuntu16.04中將python3設(shè)置為默認(rèn)python的方法,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧2018-10-10Python OpenCV 圖像區(qū)域輪廓標(biāo)記(框選各種小紙條)
這篇文章主要介紹了Python OpenCV 圖像區(qū)域輪廓標(biāo)記(框選各種小紙條),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03