Tensor和NumPy相互轉換的方法
我們很容易用 numpy() 和 from_numpy() 將 Tensor 和NumPy中的數(shù)組相互轉換。
但是需要注意的點是: 這兩個函數(shù)所產?生的的 Tensor 和NumPy中的數(shù)組共享相同的內存(所以他們之間的轉換很快),改變其中?個時另?個也會改變?。?!
還有一個常用的將NumPy中的array轉換成 Tensor 的方法就是 torch.tensor() , 需要注意的
是,此方法總是會進行數(shù)據拷貝(就會消耗更多的時間和空間),所以返回的 Tensor 和原來的數(shù)據不再共享內存。
Tensor轉NumPy
使用numpy()將 Tensor 轉換成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ù)組轉 Tensor
通過使用 from_numpy() 將NumPy數(shù)組轉換成 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ù)組相互轉換。
此外上面我們提到還有一個常用的方法就是直接用 torch.tensor() 將NumPy數(shù)組轉換成 Tensor ,需要
注意的是該方法總是會進行數(shù)據拷貝,返回的 Tensor 和原來的數(shù)據不再共享內存。
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相互轉換的方法的文章就介紹到這了,更多相關Tensor和NumPy相互轉換內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
用python實現(xiàn)域名資產監(jiān)控的詳細步驟
域名資產監(jiān)控,通過輸入一個主域名,找到該域名對應的ip地址所在的服務器的端口開閉情況,本文重點給大家介紹用python實現(xiàn)域名資產監(jiān)控的問題,需要的朋友可以參考下2021-11-11
Django實現(xiàn)從數(shù)據庫中獲取到的數(shù)據轉換為dict
這篇文章主要介紹了Django實現(xiàn)從數(shù)據庫中獲取到的數(shù)據轉換為dict,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03
淺談python str.format與制表符\t關于中文對齊的細節(jié)問題
今天小編就為大家分享一篇淺談python str.format與制表符\t關于中文對齊的細節(jié)問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01

