最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

對pytorch中x = x.view(x.size(0), -1) 的理解說明

 更新時間:2021年03月03日 14:20:20   作者:包子愛跑步  
這篇文章主要介紹了對pytorch中x = x.view(x.size(0), -1) 的理解說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

在pytorch的CNN代碼中經(jīng)常會看到

x.view(x.size(0), -1)

首先,在pytorch中的view()函數(shù)就是用來改變tensor的形狀的,例如將2行3列的tensor變?yōu)?行6列,其中-1表示會自適應(yīng)的調(diào)整剩余的維度

a = torch.Tensor(2,3)
print(a)
# tensor([[0.0000, 0.0000, 0.0000],
#    [0.0000, 0.0000, 0.0000]])
 
print(a.view(1,-1))
# tensor([[0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000]])

在CNN中卷積或者池化之后需要連接全連接層,所以需要把多維度的tensor展平成一維,x.view(x.size(0), -1)就實現(xiàn)的這個功能

def forward(self,x):
  x=self.pre(x)
  x=self.layer1(x)
  x=self.layer2(x)
  x=self.layer3(x)
  x=self.layer4(x)
    
  x=F.avg_pool2d(x,7)
  x=x.view(x.size(0),-1)
  return self.fc(x)

卷積或者池化之后的tensor的維度為(batchsize,channels,x,y),其中x.size(0)指batchsize的值,最后通過x.view(x.size(0), -1)將tensor的結(jié)構(gòu)轉(zhuǎn)換為了(batchsize, channels*x*y),即將(channels,x,y)拉直,然后就可以和fc層連接了

補充:pytorch中view的用法(重構(gòu)張量)

view在pytorch中是用來改變張量的shape的,簡單又好用。

pytorch中view的用法通常是直接在張量名后用.view調(diào)用,然后放入自己想要的shape。如

tensor_name.view(shape)

Example:

1. 直接用法:

 >>> x = torch.randn(4, 4)
 >>> x.size()
 torch.Size([4, 4])
 >>> y = x.view(16)
 >>> y.size()
 torch.Size([16])

2. 強調(diào)某一維度的尺寸:

>>> z = x.view(-1, 8) # the size -1 is inferred from other dimensions
>>> z.size()
torch.Size([2, 8])

3. 拉直張量:

(直接填-1表示拉直, 等價于tensor_name.flatten())

 >>> y = x.view(-1)
 >>> y.size()
 torch.Size([16])

4. 做維度變換時不改變內(nèi)存排列

>>> a = torch.randn(1, 2, 3, 4)
>>> a.size()
torch.Size([1, 2, 3, 4])
>>> b = a.transpose(1, 2) # Swaps 2nd and 3rd dimension
>>> b.size()
torch.Size([1, 3, 2, 4])
>>> c = a.view(1, 3, 2, 4) # Does not change tensor layout in memory
>>> c.size()
torch.Size([1, 3, 2, 4])
>>> torch.equal(b, c)
False

注意最后的False,在張量b和c是不等價的。從這里我們可以看得出來,view函數(shù)如其名,只改變“看起來”的樣子,不會改變張量在內(nèi)存中的排列。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • PyQt5多線程刷新界面防假死示例

    PyQt5多線程刷新界面防假死示例

    今天小編就為大家分享一篇PyQt5多線程刷新界面防假死示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • python 列表,集合和字典的增刪改查

    python 列表,集合和字典的增刪改查

    這篇文章主要介紹了python 列表,集合和字典的增刪改查,本文分別對他們一一說明,小編覺得這篇文章寫的還不錯,需要的朋友可以參考下,希望能夠給你帶來幫助
    2021-10-10
  • Python decimal模塊使用方法詳解

    Python decimal模塊使用方法詳解

    這篇文章主要介紹了Python decimal模塊使用方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • python pandas時序處理相關(guān)功能詳解

    python pandas時序處理相關(guān)功能詳解

    這篇文章主要介紹了python pandas時序處理相關(guān)功能詳解的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • Python 利用郵件系統(tǒng)完成遠程控制電腦的實現(xiàn)(關(guān)機、重啟等)

    Python 利用郵件系統(tǒng)完成遠程控制電腦的實現(xiàn)(關(guān)機、重啟等)

    這篇文章主要介紹了Python 利用郵件系統(tǒng)完成遠程控制電腦(關(guān)機、重啟等),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • python高階函數(shù)map()和reduce()實例解析

    python高階函數(shù)map()和reduce()實例解析

    這篇文章主要介紹了python高階函數(shù)map()和reduce()實例解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • python字符串替換第一個字符串的方法

    python字符串替換第一個字符串的方法

    這篇文章主要介紹了python字符串替換第一個字符串的方法,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-06-06
  • Python多層裝飾器用法實例分析

    Python多層裝飾器用法實例分析

    這篇文章主要介紹了Python多層裝飾器用法,結(jié)合實例形式簡單分析了Python多層裝飾器的相關(guān)使用方法與注意事項,需要的朋友可以參考下
    2018-02-02
  • 記一次python 內(nèi)存泄漏問題及解決過程

    記一次python 內(nèi)存泄漏問題及解決過程

    最近工作中慢慢開始用python協(xié)程相關(guān)的東西,所以用到了一些相關(guān)模塊,如aiohttp, aiomysql, aioredis等,用的過程中也碰到的很多問題,這里整理了一次內(nèi)存泄漏的問題。分享到腳本之家平臺,需要的朋友參考下
    2018-11-11
  • Python3.0 實現(xiàn)決策樹算法的流程

    Python3.0 實現(xiàn)決策樹算法的流程

    這篇文章主要介紹了Python3.0 實現(xiàn)決策樹算法的流程,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08

最新評論

翁源县| 周至县| 秦皇岛市| 曲水县| 灯塔市| 铜陵市| 郓城县| 潢川县| 莱阳市| 银川市| 东乌| 宁南县| 名山县| 梧州市| 泗水县| 凌云县| 绩溪县| 盘锦市| 靖远县| 靖州| 霍州市| 凤阳县| 怀安县| 嘉黎县| 渭南市| 梁河县| 疏勒县| 嘉鱼县| 河津市| 张家界市| 石泉县| 萍乡市| 乳源| 潮州市| 沈阳市| 剑阁县| 分宜县| 民丰县| 肇源县| 田东县| 清涧县|