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

pytorch中F.avg_pool1d()和F.avg_pool2d()的使用操作

 更新時間:2021年05月22日 09:41:26   作者:SZU_Hadooper  
這篇文章主要介紹了pytorch中F.avg_pool1d()和F.avg_pool2d()的使用操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

F.avg_pool1d()數(shù)據(jù)是三維輸入

input維度: (batch_size,channels,width)channel可以看成高度

kenerl維度:(一維:表示width的跨度)channel和輸入的channel一致可以認為是矩陣的高度

假設(shè)kernel_size=2,則每倆列相加求平均,stride默認和kernel_size保持一致,越界則丟棄(下面表示1,2列和3,4列相加求平均)

input = torch.tensor([[1,1,1,1,1],[1,1,1,1,1],[0,0,0,1,1],[1,1,1,1,1],[1,1,1,1,1]]).unsqueeze(0).float()
print(input)
m = F.avg_pool1d(input,kernel_size=2)
m

tensor([[[1., 1., 1., 1., 1.],
         [1., 1., 1., 1., 1.],
         [0., 0., 0., 1., 1.],
         [1., 1., 1., 1., 1.],
         [1., 1., 1., 1., 1.]]])
tensor([[[1.0000, 1.0000],
         [1.0000, 1.0000],
         [0.0000, 0.5000],
         [1.0000, 1.0000],
         [1.0000, 1.0000]]])

假設(shè)kenerl_size=3,表示前3列相加求平均,后面的不足3列丟棄

input = torch.tensor([[1,1,1,1,1],[1,1,1,1,1],[0,0,0,1,1],[1,1,1,1,1],[1,1,1,1,1]]).unsqueeze(0).float()
print(input)
m = F.avg_pool1d(input,kernel_size=3)
m
tensor([[[1., 1., 1., 1., 1.],
         [1., 1., 1., 1., 1.],
         [0., 0., 0., 1., 1.],
         [1., 1., 1., 1., 1.],
         [1., 1., 1., 1., 1.]]])
tensor([[[1.],
         [1.],
         [0.],
         [1.],
         [1.]]])

input = torch.tensor([[1,1,1,1,1],[1,1,1,1,1],[0,0,0,1,1],[1,1,1,1,1],[1,1,1,1,1]]).unsqueeze(0).float()
print(input)
m = F.avg_pool1d(input,kernel_size=4)
m
tensor([[[1., 1., 1., 1., 1.],
         [1., 1., 1., 1., 1.],
         [0., 0., 0., 1., 1.],
         [1., 1., 1., 1., 1.],
         [1., 1., 1., 1., 1.]]])
tensor([[[1.0000],
         [1.0000],
         [0.2500],
         [1.0000],
         [1.0000]]])

假設(shè)stride=1每次移動一個步伐

input = torch.tensor([[1,1,1,1,1],[1,1,1,1,1],[0,0,0,1,1],[1,1,1,1,1],[1,1,1,1,1]]).unsqueeze(0).float()
print(input)
m = F.avg_pool1d(input,kernel_size=2,stride=1)
m
tensor([[[1., 1., 1., 1., 1.],
         [1., 1., 1., 1., 1.],
         [0., 0., 0., 1., 1.],
         [1., 1., 1., 1., 1.],
         [1., 1., 1., 1., 1.]]])
tensor([[[1.0000, 1.0000, 1.0000, 1.0000],
         [1.0000, 1.0000, 1.0000, 1.0000],
         [0.0000, 0.0000, 0.5000, 1.0000],
         [1.0000, 1.0000, 1.0000, 1.0000],
         [1.0000, 1.0000, 1.0000, 1.0000]]])
 
input = torch.tensor([[1,1,1,1,1],[1,1,1,1,1],[0,0,0,1,1],[1,1,1,1,1],[1,1,1,1,1]]).unsqueeze(0).float()
print(input)
m = F.avg_pool1d(input,kernel_size=4,stride=1)
m
tensor([[[1., 1., 1., 1., 1.],
         [1., 1., 1., 1., 1.],
         [0., 0., 0., 1., 1.],
         [1., 1., 1., 1., 1.],
         [1., 1., 1., 1., 1.]]])
tensor([[[1.0000, 1.0000],
         [1.0000, 1.0000],
         [0.2500, 0.5000],
         [1.0000, 1.0000],
         [1.0000, 1.0000]]])

F.avg_pool2d()數(shù)據(jù)是四維輸入

input維度: (batch_size,channels,height,width)

kenerl維度:(二維:表示width的跨度)channel和輸入的channle一致,如果數(shù)據(jù)是三維,則channel為1.(如果只寫一個數(shù)n,kenerl=(n,n))

stride默認和kenerl一致,這是個二維的,所以在height和width上均和kenerl一致,越界同樣丟棄。

跟cnn卷積一致

input = torch.tensor([[1,1,1,1,1],[1,1,1,1,1],[0,0,0,1,1],[1,1,1,1,1],[1,1,1,1,1]]).unsqueeze(0).float()
print(input.size())
print(input)
m = F.avg_pool2d(input,kernel_size=(4,4))
m
torch.Size([1, 5, 5])
tensor([[[1., 1., 1., 1., 1.],
         [1., 1., 1., 1., 1.],
         [0., 0., 0., 1., 1.],
         [1., 1., 1., 1., 1.],
         [1., 1., 1., 1., 1.]]])
tensor([[[0.8125]]])

input = torch.tensor([[1,1,1,1,1],[1,1,1,1,1],[0,0,0,1,1],[1,1,1,1,1],[1,1,1,1,1]]).unsqueeze(0).float()
print(input.size())
print(input)
m = F.avg_pool2d(input,kernel_size=(4,4),stride=1)
m
torch.Size([1, 5, 5])
tensor([[[1., 1., 1., 1., 1.],
         [1., 1., 1., 1., 1.],
         [0., 0., 0., 1., 1.],
         [1., 1., 1., 1., 1.],
         [1., 1., 1., 1., 1.]]])
tensor([[[0.8125, 0.8750],
         [0.8125, 0.8750]]])

如果求列的平均kenerl=(1,5),此時默認stride=(1,5)

input = torch.tensor([[1,1,1,1,1],[1,1,1,1,1],[0,0,0,1,1],[1,1,1,1,1],[1,1,1,1,1]]).unsqueeze(0).float()
print(input.size())
print(input)
m = F.avg_pool2d(input,kernel_size=(1,5))
m
torch.Size([1, 5, 5])
tensor([[[1., 1., 1., 1., 1.],
         [1., 1., 1., 1., 1.],
         [0., 0., 0., 1., 1.],
         [1., 1., 1., 1., 1.],
         [1., 1., 1., 1., 1.]]])
tensor([[[1.0000],
         [1.0000],
         [0.4000],
         [1.0000],
         [1.0000]]])

如果求行的平均kenerl=(5,1),此時默認stride=(5,1),用卷積的概念取思考

input = torch.tensor([[1,1,1,1,1],[1,1,1,1,1],[0,0,0,1,1],[1,1,1,1,1],[1,1,1,1,1]]).unsqueeze(0).float()
print(input.size())
print(input)
m = F.avg_pool2d(input,kernel_size=(5,1))
m
torch.Size([1, 5, 5])
tensor([[[1., 1., 1., 1., 1.],
         [1., 1., 1., 1., 1.],
         [0., 0., 0., 1., 1.],
         [1., 1., 1., 1., 1.],
         [1., 1., 1., 1., 1.]]])
tensor([[[0.8000, 0.8000, 0.8000, 1.0000, 1.0000]]])

對于四維的數(shù)據(jù),channel默認和輸入一致

input=torch.randn(10,3,4,4)
m=F.avg_pool2d(input,(4,4))
print(m.size())
torch.Size([10, 3, 1, 1])

補充:PyTorch中AdaptiveAvgPool函數(shù)解析

自適應(yīng)池化(AdaptiveAvgPool1d):

對輸入信號,提供1維的自適應(yīng)平均池化操作 對于任何輸入大小的輸入,可以將輸出尺寸指定為H*W,但是輸入和輸出特征的數(shù)目不會變化。

torch.nn.AdaptiveAvgPool1d(output_size)
#output_size:輸出尺寸

對輸入信號,提供1維的自適應(yīng)平均池化操作 對于任何輸入大小的輸入,可以將輸出尺寸指定為H*W,但是輸入和輸出特征的數(shù)目不會變化。

# target output size of 5
m = nn.AdaptiveAvgPool1d(5)
input = autograd.Variable(torch.randn(1, 64, 8))
output = m(input)

自適應(yīng)池化(AdaptiveAvgPool2d):

class torch.nn.AdaptiveAvgPool2d(output_size)

對輸入信號,提供2維的自適應(yīng)平均池化操作 對于任何輸入大小的輸入,可以將輸出尺寸指定為H*W,但是輸入和輸出特征的數(shù)目不會變化。

參數(shù):

output_size: 輸出信號的尺寸,可以用(H,W)表示H*W的輸出,也可以使用耽擱數(shù)字H表示H*H大小的輸出

# target output size of 5x7
m = nn.AdaptiveAvgPool2d((5,7))
input = autograd.Variable(torch.randn(1, 64, 8, 9))
# target output size of 7x7 (square)
m = nn.AdaptiveAvgPool2d(7)
input = autograd.Variable(torch.randn(1, 64, 10, 9))
output = m(input)

自適應(yīng)池化的數(shù)學解釋:

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python 批量壓縮圖片的腳本

    python 批量壓縮圖片的腳本

    用Python編寫的批量壓縮圖片的腳本,可以自定義壓縮質(zhì)量,有批量圖片壓縮需求的朋友可以直接拿來用
    2021-06-06
  • pytorch中F.avg_pool1d()和F.avg_pool2d()的使用操作

    pytorch中F.avg_pool1d()和F.avg_pool2d()的使用操作

    這篇文章主要介紹了pytorch中F.avg_pool1d()和F.avg_pool2d()的使用操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • flask框架中的cookie和session使用

    flask框架中的cookie和session使用

    這篇文章主要介紹了flask框架中的cookie和session使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • PyCharm關(guān)閉礙眼的波浪線圖文詳解

    PyCharm關(guān)閉礙眼的波浪線圖文詳解

    這篇文章主要介紹了PyCharm關(guān)閉礙眼的波浪線的實現(xiàn),本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • 基于Python的網(wǎng)頁自動化工具DrissionPage的使用詳解

    基于Python的網(wǎng)頁自動化工具DrissionPage的使用詳解

    DrissionPage 是一個基于 python 的網(wǎng)頁自動化工具,它既能控制瀏覽器,也能收發(fā)數(shù)據(jù)包,還能把兩者合而為一,下面就跟隨小編一起來學習一下它的具體使用吧
    2024-01-01
  • Python實現(xiàn)的多線程同步與互斥鎖功能示例

    Python實現(xiàn)的多線程同步與互斥鎖功能示例

    這篇文章主要介紹了Python實現(xiàn)的多線程同步與互斥鎖功能,涉及Python多線程及鎖機制相關(guān)操作技巧,需要的朋友可以參考下
    2017-11-11
  • Python使用date模塊進行日期處理的終極指南

    Python使用date模塊進行日期處理的終極指南

    在處理與時間相關(guān)的數(shù)據(jù)時,Python的date模塊是開發(fā)者最趁手的工具之一,本文將用通俗的語言,結(jié)合真實案例,帶您掌握date模塊的六大核心功能和使用技巧,需要的可以了解下
    2025-03-03
  • python神經(jīng)網(wǎng)絡(luò)Keras搭建RFBnet目標檢測平臺

    python神經(jīng)網(wǎng)絡(luò)Keras搭建RFBnet目標檢測平臺

    這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡(luò)Keras搭建RFBnet目標檢測平臺,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • python selenium禁止加載某些請求的實現(xiàn)

    python selenium禁止加載某些請求的實現(xiàn)

    本文主要介紹了python selenium禁止加載某些請求的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • 關(guān)于matlab圖像濾波詳解(二維傅里葉濾波)

    關(guān)于matlab圖像濾波詳解(二維傅里葉濾波)

    這篇文章主要介紹了關(guān)于matlab圖像濾波詳解(二維傅里葉濾波),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02

最新評論

福鼎市| 武邑县| 公主岭市| 前郭尔| 龙游县| 宁津县| 周口市| 竹溪县| 安龙县| 柘城县| 明光市| 开江县| 无极县| 饶河县| 资兴市| 兴隆县| 新巴尔虎左旗| 咸宁市| 商丘市| 冀州市| 怀集县| 万荣县| 滁州市| 濮阳市| 湾仔区| 称多县| 睢宁县| 仪征市| 常宁市| 罗甸县| 台江县| 西林县| 永昌县| 汉阴县| 布尔津县| 伊川县| 蛟河市| 平利县| 理塘县| 获嘉县| 改则县|