婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > pytorch中F.avg_pool1d()和F.avg_pool2d()的使用操作

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

熱門標簽:沈陽防封電銷卡品牌 沈陽人工外呼系統價格 武漢外呼系統平臺 沈陽外呼系統呼叫系統 江西省地圖標注 富錦商家地圖標注 如何申請400電話費用 池州外呼調研線路 外呼系統哪些好辦

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

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

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

假設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]]])

假設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]]])

假設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()數據是四維輸入

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

kenerl維度:(二維:表示width的跨度)channel和輸入的channle一致,如果數據是三維,則channel為1.(如果只寫一個數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]]])

對于四維的數據,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函數解析

自適應池化(AdaptiveAvgPool1d):

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

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

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

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

自適應池化(AdaptiveAvgPool2d):

class torch.nn.AdaptiveAvgPool2d(output_size)

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

參數:

output_size: 輸出信號的尺寸,可以用(H,W)表示H*W的輸出,也可以使用耽擱數字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)

自適應池化的數學解釋:

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

您可能感興趣的文章:
  • Pytorch自定義Dataset和DataLoader去除不存在和空數據的操作
  • pytorch Dataset,DataLoader產生自定義的訓練數據案例
  • PyTorch實現重寫/改寫Dataset并載入Dataloader
  • 一文弄懂Pytorch的DataLoader, DataSet, Sampler之間的關系
  • PyTorch 解決Dataset和Dataloader遇到的問題
  • PyTorch 如何自動計算梯度
  • 我對PyTorch dataloader里的shuffle=True的理解
  • pytorch 帶batch的tensor類型圖像顯示操作
  • 解決pytorch下只打印tensor的數值不打印出device等信息的問題
  • Pytorch 如何查看、釋放已關閉程序占用的GPU資源
  • pytorch中的squeeze函數、cat函數使用
  • Pytorch數據讀取之Dataset和DataLoader知識總結

標簽:潛江 常德 銅川 黑龍江 呂梁 通遼 株洲 阿里

巨人網絡通訊聲明:本文標題《pytorch中F.avg_pool1d()和F.avg_pool2d()的使用操作》,本文關鍵詞  pytorch,中,F.avg,pool1d,和,pool2d,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《pytorch中F.avg_pool1d()和F.avg_pool2d()的使用操作》相關的同類信息!
  • 本頁收集關于pytorch中F.avg_pool1d()和F.avg_pool2d()的使用操作的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 乌拉特前旗| 台州市| 阳高县| 南岸区| 安化县| 兰溪市| 如东县| 容城县| 肥城市| 那坡县| 怀安县| 合山市| 全椒县| 临汾市| 德保县| 兖州市| 舞钢市| 湘潭县| 包头市| 米林县| 柳州市| 太仓市| 榕江县| 固阳县| 广灵县| 常熟市| 凌源市| 永新县| 抚远县| 延寿县| 桂东县| 龙游县| 阜新市| 年辖:市辖区| 顺昌县| 涡阳县| 攀枝花市| 南溪县| 河东区| 新津县| 旬阳县|