pytorch中函數(shù)tensor.numpy()的數(shù)據(jù)類型解析
函數(shù)tensor.numpy()的數(shù)據(jù)類型
今天寫代碼的時(shí)候,要統(tǒng)計(jì)一下標(biāo)簽數(shù)據(jù)里出現(xiàn)的類別總數(shù)和要分類的分類數(shù)是不是一致的。
我的做法是把tensor類型的數(shù)據(jù)轉(zhuǎn)變成list,然后用Counter函數(shù)做統(tǒng)計(jì)。
代碼如下:
from collections import Counter List_counter = Counter(List1) #List1就是待統(tǒng)計(jì)的數(shù)據(jù),是一維的列表。生成的List_counter是一個(gè)字典,鍵是數(shù)據(jù), #對(duì)應(yīng)的值是數(shù)據(jù)出現(xiàn)的頻率
在做這個(gè)統(tǒng)計(jì)的時(shí)候,突然發(fā)現(xiàn),我的數(shù)據(jù)是float的類型,這是不應(yīng)該出現(xiàn)的,因?yàn)闃?biāo)簽數(shù)據(jù)在處理的時(shí)候都是整型數(shù)據(jù)。
經(jīng)過(guò)一番查找后,發(fā)現(xiàn)是tensor.numpy()返回值數(shù)據(jù)類型的原因。這個(gè)函數(shù)的返回值是float類型的
tensor數(shù)據(jù)和numpy數(shù)據(jù)轉(zhuǎn)換中注意的一個(gè)問(wèn)題
在pytorch中,把numpy.array數(shù)據(jù)轉(zhuǎn)換到張量tensor數(shù)據(jù)的常用函數(shù)是torch.from_numpy(array)或者torch.Tensor(array)
第一種函數(shù)更常用,然而在pytorch0.4中已經(jīng)舍棄了這種函數(shù)
下面一個(gè)簡(jiǎn)單的編程實(shí)驗(yàn)說(shuō)明這兩種方法的區(qū)別
實(shí)驗(yàn)在pytorch0.4框架下進(jìn)行
運(yùn)行程序之后,結(jié)果是
可以看出修改數(shù)組a的元素值,張量b的元素值也改變了,但是張量c卻不變。
修改張量c的元素值,數(shù)組a和張量b的元素值都不變。
這說(shuō)明torch.from_numpy(array)是做數(shù)組的淺拷貝,torch.Tensor(array)是做數(shù)組的深拷貝
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python多進(jìn)程協(xié)作模擬實(shí)現(xiàn)流程
當(dāng)多個(gè)進(jìn)程使用同一份數(shù)據(jù)資源的時(shí)候,因?yàn)檫M(jìn)程的運(yùn)行沒(méi)有順序,運(yùn)行起來(lái)也無(wú)法控制,如果不加以干預(yù),往往會(huì)引發(fā)數(shù)據(jù)安全或順序混亂的問(wèn)題,所以要在多個(gè)進(jìn)程讀寫共享數(shù)據(jù)資源的時(shí)候加以適當(dāng)?shù)牟呗?,?lái)保證數(shù)據(jù)的一致性問(wèn)題2023-01-01jupyter閃退怎么辦?jupyter閃退問(wèn)題的解決
這篇文章主要介紹了jupyter閃退怎么辦?jupyter閃退問(wèn)題的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01python中pandas nlargest()的詳細(xì)用法小結(jié)
df.nlargest()是一個(gè)DataFrame的方法,用于返回DataFrame中最大的n個(gè)值所在的行,通過(guò)調(diào)用nlargest()方法,我們返回了分?jǐn)?shù)最高的三個(gè)行,并按照降序排列,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2023-10-10Python標(biāo)準(zhǔn)庫(kù)itertools的使用方法
本文匯總整理了Python標(biāo)準(zhǔn)庫(kù)itertools的使用方法,并提供簡(jiǎn)單應(yīng)用示例;如果還不能滿足你的要求,歡迎加入補(bǔ)充2020-01-01python保存字典數(shù)據(jù)到csv文件的完整代碼
在實(shí)際數(shù)據(jù)分析過(guò)程中,我們分析用Python來(lái)處理數(shù)據(jù)(海量的數(shù)據(jù)),我們都是把這個(gè)數(shù)據(jù)轉(zhuǎn)換為Python的對(duì)象的,比如最為常見的字典,下面這篇文章主要給大家介紹了關(guān)于python保存字典數(shù)據(jù)到csv的相關(guān)資料,需要的朋友可以參考下2022-06-06Python一直報(bào)錯(cuò)SyntaxError:invalid?syntax的解決辦法
SyntaxError: invalid syntax 這個(gè)報(bào)錯(cuò)經(jīng)常遇見,但是總感覺(jué)自己的代碼沒(méi)有問(wèn)題,根據(jù)報(bào)錯(cuò)提示的行也找不到錯(cuò)誤,這些情況以及解決方法都有哪些呢?這篇文章主要給大家介紹了關(guān)于Python一直報(bào)錯(cuò)SyntaxError:invalid?syntax的解決辦法,需要的朋友可以參考下2022-09-09Pandas刪除數(shù)據(jù)的幾種情況(小結(jié))
這篇文章主要介紹了Pandas刪除數(shù)據(jù)的幾種情況(小結(jié)),詳細(xì)的介紹了4種方式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06