Numpy Pytorch之資料型別與強制轉換

2022-09-15 15:24:19 字數 2337 閱讀 6436

numpy 支援比 python 更多種類的數值型別。 下表顯示了 numpy 中定義的不同標量資料型別。

torch定義了七種cpu張量型別和八種gpu張量型別,這裡我們就只講解一下cpu中的,其實gpu中只是中間加乙個cuda即可,如torch.cuda.floattensor:

同樣,直接使用型別名很可能會報錯,正確的使用方式是torch.呼叫,eg,torch.floattensor()

type函式可以由變數呼叫,或者把變數作為引數傳入。

返回的是該變數的型別,而非資料型別。

data = np.random.randint(0, 255, 300)

print

(type(data))

#

返回值為變數的資料型別

t_out = torch.tensor(1,2,3)

print

(t_out.dtype)

#torch.float32

t_out = torch.tensor(1,2,3)

print

(t_out.numpy().dtype)

#float32

n_out =n_out.astype(np.uint8)

#由變數呼叫,但是直接呼叫不會改變原變數的資料型別,是返回值是改變型別後的新變數,所以要賦值回去。

#

初始化隨機數種子

np.random.seed(0)

data = np.random.randint(0, 255, 300)

print

(data.dtype)

n_out = data.reshape(10,10,3) #

強制型別轉換

n_out =n_out.astype(np.uint8)

print

(n_out.dtype)

img =transforms.topilimage()(n_out)

img.show()

pytorch中沒有astype函式,正確的轉換方法是

1.變數直接呼叫型別

tensor = torch.tensor(3, 5)

#torch.long() 將tensor投射為long型別

newtensor =tensor.long()

#torch.half()將tensor投射為半精度浮點型別

newtensor =tensor.half()

#torch.int()將該tensor投射為int型別

newtensor =tensor.int()

#torch.double()將該tensor投射為double型別

newtensor =tensor.double()

#torch.float()將該tensor投射為float型別

newtensor =tensor.float()

#torch.char()將該tensor投射為char型別

newtensor =tensor.char()

#torch.byte()將該tensor投射為byte型別

newtensor =tensor.byte()

#torch.short()將該tensor投射為short型別

newtensor =tensor.short()

#同樣,和numpy中的astype函式一樣,是返回值才是改變型別後的結果,呼叫的變數型別不變

2.變數直接呼叫pytorch中的type函式type(new_type=none, async=false)如果未提供new_type,則返回型別,否則將此物件轉換為指定的型別。 如果已經是正確的型別,則不會執行且返回原物件。

用法如下:

t = torch.longtensor(3, 5)

t = t.type(torch.floattensor)

3.變數呼叫pytorch中的type_as函式如果張量已經是正確的型別,則不會執行操作。具體操作方法如下:

t = torch.tensor(3,5)

tensor = torch.inttensor(2, 3)

t = t.type_as(tensor)

AN之資料集

一 資料集 首先介紹資料集引數 英文簡稱 英文全稱 中文全稱 單位換成正常單位 說明1說明2 time time 時間小時 分鐘 temp temperature 溫度攝氏度 dodissolved oxygen 溶解氧mg m3 1mg m3 1x10 3mg l clar visual wate...

資料裝載之資料校驗

在資料遷移或資料裝載中,如何判斷資料的正確性?有些資料可能沒有被遷移,已經遷移成功的資料可能某些欄位不一致。在大資料量的情況下,資料的校驗還是很有必要的。現在說一下對單錶驗證的一些簡單想法 1.校驗和法 這種做法簡單直接。在源表上通過自定義的函式生成乙個校驗和,然後資料匯出後,在目標表生成乙個校驗和...

資料探勘之資料探索

本文探索 1.探索類別特徵,檢視每個類別特徵有多少種類 2.探索數值特徵,離散化方式 3.去除大多數是同一值的特徵 4.處理時間型特徵 所需python包 from pandas import series,dataframe import pandas as pd一 檢視每個類別特徵有多少種類 d...