溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Pytorch數(shù)據(jù)類型與轉(zhuǎn)換的方法有哪些

發(fā)布時(shí)間:2023-02-22 14:45:12 來源:億速云 閱讀:129 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容介紹了“Pytorch數(shù)據(jù)類型與轉(zhuǎn)換的方法有哪些”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

Pytorch數(shù)據(jù)類型與轉(zhuǎn)換(torch.tensor,torch.FloatTensor)

一、torch.tensor

1.首先講下torch.tensor,默認(rèn)整型數(shù)據(jù)類型為torch.int64,浮點(diǎn)型為torch.float32

Pytorch數(shù)據(jù)類型與轉(zhuǎn)換的方法有哪些

2.這是我認(rèn)為平常最愛用的轉(zhuǎn)數(shù)據(jù)類型的方法,可以用dtype去定義數(shù)據(jù)類型

Pytorch數(shù)據(jù)類型與轉(zhuǎn)換的方法有哪些

二、torch.FloatTensor

1.這個(gè)函數(shù)不要亂用,首先它可以將變量轉(zhuǎn)化為浮點(diǎn)型32位,這里注意此時(shí)的變量類型為列表,或數(shù)組等,此時(shí)參數(shù)為單個(gè)變量

Pytorch數(shù)據(jù)類型與轉(zhuǎn)換的方法有哪些

2.當(dāng)函數(shù)參數(shù)為整形時(shí),表示生成矩陣的維度,此時(shí)參數(shù)可以為多個(gè)變量

Pytorch數(shù)據(jù)類型與轉(zhuǎn)換的方法有哪些

補(bǔ)充:還有一種方法通過numpy數(shù)組定義數(shù)據(jù)類型,再轉(zhuǎn)化為tensor,這個(gè)方法不多講了。

擴(kuò)展:Pytorch數(shù)據(jù)類型轉(zhuǎn)換

1. Pytorch上的數(shù)據(jù)類型

Pytorch的類型可以分為CPU和GPU上的Tensor, 它們擁有的數(shù)據(jù)類型是基本上是一樣的:

  • tensor.FloatTensor

  • tensor.LongTensor

  • tensor.ByteTensor

  • tensor.CharTensor

  • tensor.ShortTensor

  • tensor.IntTensor

  • torch.LongTensor

其中torch.Tensor是默認(rèn)的tensor.FloatTensor的簡(jiǎn)稱。

2. 數(shù)據(jù)類型之間的轉(zhuǎn)換

tensor = torch.Tensor(3, 5)
## torch.long() 將tensor投射為long類型:
newtensor = torch.long()
## torch.int()將該tensor投射為int類型:
newtensor = torch.int()
## torch.double()將該tensor投射為double類型:
newtensor = torch.double()

一般,只要在Tensor后加long(), int(), double(), float(), byte()等函數(shù)就能將Tensor的類型進(jìn)行轉(zhuǎn)換
除此之外,可以使用type()函數(shù),data為Tensor數(shù)據(jù)類型,data.type()給出data的類型,如果使用data.type(torch.FloatTensor)則強(qiáng)制轉(zhuǎn)換為torch.FloatTensor類型的張量, 如果不知道什么類型,可以使用tensor_1.type_as(tensor_2), 將tensor_1轉(zhuǎn)換成tensor_2。

self = torch.LongTensor(3, 5)
# 轉(zhuǎn)換為其他類型
print self.type(torch.FloatTensor)

3. cuda數(shù)據(jù)類型,cpu類型和一般的數(shù)據(jù)類型

  • 如果沒有特別說明:tensor是cpu上的變量

  • 使用gpu張量:tensor.cuda()

  • 使用cpu張量:tensor.cpu()

  • Variable轉(zhuǎn)換成普通的Tensor: variable.data()

  • Tesnor轉(zhuǎn)換成numpy array的格式:tensor.numpy()

  • numpy數(shù)據(jù)轉(zhuǎn)換成Tensor: torch.from_numpy(np_data)

  • Tensor轉(zhuǎn)換成Variable: Variable(tensor)

Pytorch數(shù)據(jù)類似pytorch中的tensor, 更重要的是tensor可以使用GPU來加速,并且變成Variable可以實(shí)現(xiàn)自動(dòng)求導(dǎo)的功能,Variable是對(duì)Tensor對(duì)象的封裝。

邏輯值True和False轉(zhuǎn)成0和1. +0

print(y)
print(y+0)
## 輸出結(jié)果
tensor([ True, False, False,  True,  True, False, False,  True,  True, False])
tensor([1, 0, 0, 1, 1, 0, 0, 1, 1, 0])

“Pytorch數(shù)據(jù)類型與轉(zhuǎn)換的方法有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI