日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

pytorch中函數tensor.numpy()的數據類型解析_python

作者:ilove_Moretz ? 更新時間: 2022-09-08 編程語言

函數tensor.numpy()的數據類型

今天寫代碼的時候,要統計一下標簽數據里出現的類別總數和要分類的分類數是不是一致的。

我的做法是把tensor類型的數據轉變成list,然后用Counter函數做統計。

代碼如下:

from collections import Counter
List_counter = Counter(List1)
#List1就是待統計的數據,是一維的列表。生成的List_counter是一個字典,鍵是數據,
#對應的值是數據出現的頻率

在做這個統計的時候,突然發現,我的數據是float的類型,這是不應該出現的,因為標簽數據在處理的時候都是整型數據。

經過一番查找后,發現是tensor.numpy()返回值數據類型的原因。這個函數的返回值是float類型的

tensor數據和numpy數據轉換中注意的一個問題

在pytorch中,把numpy.array數據轉換到張量tensor數據的常用函數是torch.from_numpy(array)或者torch.Tensor(array)

第一種函數更常用,然而在pytorch0.4中已經舍棄了這種函數

下面一個簡單的編程實驗說明這兩種方法的區別

實驗在pytorch0.4框架下進行

運行程序之后,結果是

可以看出修改數組a的元素值,張量b的元素值也改變了,但是張量c卻不變。

修改張量c的元素值,數組a和張量b的元素值都不變。

這說明torch.from_numpy(array)是做數組的淺拷貝,torch.Tensor(array)是做數組的深拷貝

原文鏈接:https://blog.csdn.net/ilove_Moretz/article/details/110304733

欄目分類
最近更新