pytorch中函數(shù)tensor.numpy()的數(shù)據(jù)類型解析
函數(shù)tensor.numpy()的數(shù)據(jù)類型
今天寫代碼的時候,要統(tǒng)計一下標簽數(shù)據(jù)里出現(xiàn)的類別總數(shù)和要分類的分類數(shù)是不是一致的。
我的做法是把tensor類型的數(shù)據(jù)轉(zhuǎn)變成list,然后用Counter函數(shù)做統(tǒng)計。
代碼如下:
from collections import Counter List_counter = Counter(List1) #List1就是待統(tǒng)計的數(shù)據(jù),是一維的列表。生成的List_counter是一個字典,鍵是數(shù)據(jù), #對應的值是數(shù)據(jù)出現(xiàn)的頻率
在做這個統(tǒng)計的時候,突然發(fā)現(xiàn),我的數(shù)據(jù)是float的類型,這是不應該出現(xiàn)的,因為標簽數(shù)據(jù)在處理的時候都是整型數(shù)據(jù)。
經(jīng)過一番查找后,發(fā)現(xiàn)是tensor.numpy()返回值數(shù)據(jù)類型的原因。這個函數(shù)的返回值是float類型的
tensor數(shù)據(jù)和numpy數(shù)據(jù)轉(zhuǎ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ù)
下面一個簡單的編程實驗說明這兩種方法的區(qū)別
實驗在pytorch0.4框架下進行
運行程序之后,結(jié)果是
可以看出修改數(shù)組a的元素值,張量b的元素值也改變了,但是張量c卻不變。
修改張量c的元素值,數(shù)組a和張量b的元素值都不變。
這說明torch.from_numpy(array)是做數(shù)組的淺拷貝,torch.Tensor(array)是做數(shù)組的深拷貝
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
python中pandas nlargest()的詳細用法小結(jié)
df.nlargest()是一個DataFrame的方法,用于返回DataFrame中最大的n個值所在的行,通過調(diào)用nlargest()方法,我們返回了分數(shù)最高的三個行,并按照降序排列,本文結(jié)合實例代碼給大家介紹的非常詳細,需要的朋友參考下吧2023-10-10python保存字典數(shù)據(jù)到csv文件的完整代碼
在實際數(shù)據(jù)分析過程中,我們分析用Python來處理數(shù)據(jù)(海量的數(shù)據(jù)),我們都是把這個數(shù)據(jù)轉(zhuǎn)換為Python的對象的,比如最為常見的字典,下面這篇文章主要給大家介紹了關于python保存字典數(shù)據(jù)到csv的相關資料,需要的朋友可以參考下2022-06-06Python一直報錯SyntaxError:invalid?syntax的解決辦法
SyntaxError: invalid syntax 這個報錯經(jīng)常遇見,但是總感覺自己的代碼沒有問題,根據(jù)報錯提示的行也找不到錯誤,這些情況以及解決方法都有哪些呢?這篇文章主要給大家介紹了關于Python一直報錯SyntaxError:invalid?syntax的解決辦法,需要的朋友可以參考下2022-09-09Pandas刪除數(shù)據(jù)的幾種情況(小結(jié))
這篇文章主要介紹了Pandas刪除數(shù)據(jù)的幾種情況(小結(jié)),詳細的介紹了4種方式,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-06-06