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

PyTorch的自適應(yīng)池化Adaptive Pooling實例

 更新時間:2020年01月03日 11:22:30   作者:冷月葬婲魂  
今天小編就為大家分享一篇PyTorch的自適應(yīng)池化Adaptive Pooling實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

簡介

自適應(yīng)池化Adaptive Pooling是PyTorch含有的一種池化層,在PyTorch的中有六種形式:

自適應(yīng)最大池化Adaptive Max Pooling:

torch.nn.AdaptiveMaxPool1d(output_size)
torch.nn.AdaptiveMaxPool2d(output_size)
torch.nn.AdaptiveMaxPool3d(output_size)

自適應(yīng)平均池化Adaptive Average Pooling:

torch.nn.AdaptiveAvgPool1d(output_size)
torch.nn.AdaptiveAvgPool2d(output_size)
torch.nn.AdaptiveAvgPool3d(output_size)

具體可見官方文檔。

官方給出的例子:
>>> # target output size of 5x7
>>> m = nn.AdaptiveMaxPool2d((5,7))
>>> input = torch.randn(1, 64, 8, 9)
>>> output = m(input)
>>> output.size()
torch.Size([1, 64, 5, 7])

>>> # target output size of 7x7 (square)
>>> m = nn.AdaptiveMaxPool2d(7)
>>> input = torch.randn(1, 64, 10, 9)
>>> output = m(input)
>>> output.size()
torch.Size([1, 64, 7, 7])

>>> # target output size of 10x7
>>> m = nn.AdaptiveMaxPool2d((None, 7))
>>> input = torch.randn(1, 64, 10, 9)
>>> output = m(input)
>>> output.size()
torch.Size([1, 64, 10, 7])

Adaptive Pooling特殊性在于,輸出張量的大小都是給定的output_size output\_sizeoutput_size。例如輸入張量大小為(1, 64, 8, 9),設(shè)定輸出大小為(5,7),通過Adaptive Pooling層,可以得到大小為(1, 64, 5, 7)的張量。

原理

>>> inputsize = 9
>>> outputsize = 4

>>> input = torch.randn(1, 1, inputsize)
>>> input
tensor([[[ 1.5695, -0.4357, 1.5179, 0.9639, -0.4226, 0.5312, -0.5689, 0.4945, 0.1421]]])

>>> m1 = nn.AdaptiveMaxPool1d(outputsize)
>>> m2 = nn.MaxPool1d(kernel_size=math.ceil(inputsize / outputsize), stride=math.floor(inputsize / outputsize), padding=0)
>>> output1 = m1(input)
>>> output2 = m2(input)

>>> output1
tensor([[[1.5695, 1.5179, 0.5312, 0.4945]]]) torch.Size([1, 1, 4])
>>> output2
tensor([[[1.5695, 1.5179, 0.5312, 0.4945]]]) torch.Size([1, 1, 4])

通過實驗發(fā)現(xiàn):

下面是Adaptive Average Pooling的c++源碼部分。

 template <typename scalar_t>
 static void adaptive_avg_pool2d_out_frame(
      scalar_t *input_p,
      scalar_t *output_p,
      int64_t sizeD,
      int64_t isizeH,
      int64_t isizeW,
      int64_t osizeH,
      int64_t osizeW,
      int64_t istrideD,
      int64_t istrideH,
      int64_t istrideW)
 {
  int64_t d;
 #pragma omp parallel for private(d)
  for (d = 0; d < sizeD; d++)
  {
   /* loop over output */
   int64_t oh, ow;
   for(oh = 0; oh < osizeH; oh++)
   {
    int istartH = start_index(oh, osizeH, isizeH);
    int iendH  = end_index(oh, osizeH, isizeH);
    int kH = iendH - istartH;

    for(ow = 0; ow < osizeW; ow++)
    {
     int istartW = start_index(ow, osizeW, isizeW);
     int iendW  = end_index(ow, osizeW, isizeW);
     int kW = iendW - istartW;

     /* local pointers */
     scalar_t *ip = input_p  + d*istrideD + istartH*istrideH + istartW*istrideW;
     scalar_t *op = output_p + d*osizeH*osizeW + oh*osizeW + ow;

     /* compute local average: */
     scalar_t sum = 0;
     int ih, iw;
     for(ih = 0; ih < kH; ih++)
     {
      for(iw = 0; iw < kW; iw++)
      {
       scalar_t val = *(ip + ih*istrideH + iw*istrideW);
       sum += val;
      }
     }

     /* set output to local average */
     *op = sum / kW / kH;
    }
   }
  }
}

以上這篇PyTorch的自適應(yīng)池化Adaptive Pooling實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python實現(xiàn)串口通信的示例代碼

    python實現(xiàn)串口通信的示例代碼

    python實現(xiàn)串口通信是一件簡單的事情,只要通過pyserial模塊就可以實現(xiàn),本文主要介紹了python實現(xiàn)串口通信的示例代碼,感興趣的可以了解一下
    2023-10-10
  • Python+ChatGPT制作一個AI實用百寶箱

    Python+ChatGPT制作一個AI實用百寶箱

    ChatGPT最近在互聯(lián)網(wǎng)掀起了一陣熱潮,其高度智能化的功能能夠給我們現(xiàn)實生活帶來諸多的便利。本文就來用Python和ChatGPT制作一個AI實用百寶箱吧
    2023-02-02
  • python smtplib模塊實現(xiàn)發(fā)送郵件帶附件sendmail

    python smtplib模塊實現(xiàn)發(fā)送郵件帶附件sendmail

    這篇文章主要為大家詳細(xì)介紹了python smtplib模塊實現(xiàn)發(fā)送郵件帶附件sendmail,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • Python2.7簡單連接與操作MySQL的方法

    Python2.7簡單連接與操作MySQL的方法

    這篇文章主要介紹了Python2.7簡單連接與操作MySQL的方法,涉及Python使用MySQLdb模塊操作MySQL連接及命令運行的相關(guān)技巧,需要的朋友可以參考下
    2016-04-04
  • 利用Python繪制Jazz網(wǎng)絡(luò)圖的例子

    利用Python繪制Jazz網(wǎng)絡(luò)圖的例子

    今天小編就為大家分享一篇利用Python繪制Jazz網(wǎng)絡(luò)圖的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Python3 常用數(shù)據(jù)標(biāo)準(zhǔn)化方法詳解

    Python3 常用數(shù)據(jù)標(biāo)準(zhǔn)化方法詳解

    這篇文章主要介紹了Python3 常用數(shù)據(jù)標(biāo)準(zhǔn)化方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Python利用partial偏函數(shù)生成不同的聚合函數(shù)

    Python利用partial偏函數(shù)生成不同的聚合函數(shù)

    本文主要介紹了Python利用partial偏函數(shù)生成不同的聚合函數(shù),利用偏函數(shù)的概念,可以生成一些新的函數(shù),在調(diào)用這些新函數(shù)時,不用再傳遞固定值的參數(shù),這樣可以使代碼更簡潔,感興趣的可以了解一下
    2024-03-03
  • python SQLAlchemy 中的Engine詳解

    python SQLAlchemy 中的Engine詳解

    這篇文章主要介紹了python SQLAlchemy 中的Engine詳解,Engine 翻譯過來就是引擎的意思,汽車通過引擎來驅(qū)動,而 SQLAlchemy 是通過 Engine 來驅(qū)動,Engine 維護(hù)了一個連接池(Pool)對象和方言(Dialect),需要的朋友可以參考下
    2019-07-07
  • 在 Python 中使用 MQTT的方法

    在 Python 中使用 MQTT的方法

    這篇文章主要介紹了在 Python 中使用 MQTT的方法,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-08-08
  • 通過Python將MP4視頻轉(zhuǎn)換為GIF動畫

    通過Python將MP4視頻轉(zhuǎn)換為GIF動畫

    Python可用于讀取常見的MP4視頻格式并將其轉(zhuǎn)換為GIF動畫。本文將詳細(xì)為大家介紹實現(xiàn)的過程,文中的代碼具有一定的參考價值,感興趣的小伙伴可以學(xué)習(xí)一下
    2021-12-12

最新評論

舟山市| 余江县| 深圳市| 象山县| 黄冈市| 璧山县| 昭苏县| 灵台县| 环江| 周宁县| 崇文区| 潜江市| 柳河县| 大竹县| 韩城市| 深州市| 牙克石市| 武隆县| 兴文县| 仪陇县| 兰坪| 康平县| 枣庄市| 永康市| 方山县| 山丹县| 曲水县| 濮阳县| 玉溪市| 邓州市| 鄄城县| 郁南县| 云梦县| 门头沟区| 黎城县| 北海市| 呼和浩特市| 巴青县| 禄丰县| 股票| 黄山市|