溫馨提示×

溫馨提示×

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

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

怎么在pytorch中使用torch.max與Tensor.view函數(shù)

發(fā)布時間:2021-01-04 15:01:12 來源:億速云 閱讀:215 作者:Leah 欄目:開發(fā)技術(shù)

怎么在pytorch中使用torch.max與Tensor.view函數(shù)?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

torch.max()

1.

torch.max()簡單來說是返回一個tensor中的最大值。

例如:

>>> si=torch.randn(4,5)
>>> print(si)
tensor([[ 1.1659, -1.5195, 0.0455, 1.7610, -0.2064],
    [-0.3443, 2.0483, 0.6303, 0.9475, 0.4364],
    [-1.5268, -1.0833, 1.6847, 0.0145, -0.2088],
    [-0.8681, 0.1516, -0.7764, 0.8244, -1.2194]])

>>> print(torch.max(si))
tensor(2.0483)

2.

這個函數(shù)的參數(shù)中還有一個dim參數(shù),使用方法為re = torch.max(Tensor,dim),返回的re為一個二維向量,其中re[0]為最大值的Tensor,re[1]為最大值對應(yīng)的index的Tensor。

例如:

>>> print(torch.max(si,0)[0])
tensor([1.1659, 2.0483, 1.6847, 1.7610, 0.4364])

注意,Tensor的維度從0開始算起。在torch.max()中指定了dim之后,比如對于一個3x4x5的Tensor,指定dim為0后,得到的結(jié)果是維度為0的“每一行”對應(yīng)位置求最大的那個值,此時輸出的Tensor的維度是4x5.

對于簡單的二維Tensor,如上面例子的這個4x5的Tensor。指定dim為0,則給出的結(jié)果是4行做比較之后的最大值;如果指定dim為1,則給出的結(jié)果是5列做比較之后的最大值,且此處做比較時是按照位置分別做比較,得到一個新的Tensor。

Tensor.view()

簡單說就是一個把tensor 進行reshape的操作。

>>> a=torch.randn(3,4,5,7)
>>> b = a.view(1,-1)
>>> print(b.size())
torch.Size([1, 420])

其中參數(shù)-1表示剩下的值的個數(shù)一起構(gòu)成一個維度。如上例中,第一個參數(shù)1將第一個維度的大小設(shè)定成1,后一個-1就是說第二個維度的大小=元素總數(shù)目/第一個維度的大小,此例中為3*4*5*7/1=420.

>>> d = a.view(a.size(0),a.size(1),-1)
>>> print(d.size())
torch.Size([3, 4, 35])

 

>>> e=a.view(4,-1,5)
>>> print(e.size())
torch.Size([4, 21, 5])

看完上述內(nèi)容,你們掌握怎么在pytorch中使用torch.max與Tensor.view函數(shù)的方法了嗎?如果還想學到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

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

AI