日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

池化层:最大池化MaxPool、平均池化AvgPool、自适应池化AdaptiveMaxPool区别--基于pytorch框架

發(fā)布時(shí)間:2023/12/15 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 池化层:最大池化MaxPool、平均池化AvgPool、自适应池化AdaptiveMaxPool区别--基于pytorch框架 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

  • MaxPool2d最大池化
  • AvgPool2d平均池化
  • AdaptiveAvgPool2d自適應(yīng)平均池化

池化操作的一個(gè)重要的目的就是對(duì)卷積后得到的特征進(jìn)行進(jìn)一步處理,池化層可以起到對(duì)數(shù)據(jù)進(jìn)一步濃縮的效果,從而緩解計(jì)算時(shí)內(nèi)存的壓力。
在pytoch中提供很多池化的類,這里主要介紹最**大池化(MaxPool)、平均池化(AvgPool)、自適應(yīng)池化(AdaptiveAvgpool)**的區(qū)別,,其他方法類似。

對(duì)于torch.nn.MaxPool2d()池化操作相關(guān)參數(shù)的應(yīng)用,其使用方法如下所示

torch.nn.MaxPool2d(kernel_size,stride=None,padding=0,dilation=1,return_indices=False,ceil_mode=False)

參數(shù)使用說(shuō)明:
kernel_size:(整數(shù)或者數(shù)組)最大池化的窗口大小;
stride:(整數(shù)或數(shù)組,正數(shù))最大值池化窗口移動(dòng)的步長(zhǎng),默認(rèn)值是kernel_size
padding:(整數(shù)或數(shù)據(jù)、正數(shù))輸入的每一條邊補(bǔ)充0的層數(shù)
dilation:(整數(shù)或數(shù)組、正數(shù))一個(gè)控制窗口中元素步幅的參數(shù)
return_indices:如果為True,則會(huì)返回輸出最大值的索引,這樣會(huì)更加便于后面的torch.nn.MaxUnpool2d操作
ceil_mode:如果等于True,計(jì)算輸出信號(hào)的大小時(shí)候,會(huì)使用向上取整,默認(rèn)向下取整。
測(cè)試圖片見(jiàn)下圖

MaxPool2d最大池化

對(duì)卷積后的結(jié)果進(jìn)行最大池化

maxpool2 = nn.MaxPool2d(2,stride=2) pool2_out = maxpool2(imconv2dout) pool2_out_im = pool2_out.squeeze() print('pool2_out.shape')

對(duì)原始圖片2160 * 3840進(jìn)行特征映射在經(jīng)過(guò)窗口為22,步長(zhǎng)為2的最大池化后,尺寸變成10781918的特征映射。將兩個(gè)特征映射進(jìn)行可視化

plt.figure(figsize = (12,6)) plt.subplot(1,2,1) plt.imshow(pool2_out_im[0].data,cmap=plt.cm.gray) plt.axis("off") plt.subplot(1,2,2) plt.imshow(pool2_out_im[1].data,cmap=plt.cm.gray) plt.axis("off") plt.show()

最大池化的結(jié)果圖像

完整代碼見(jiàn)下圖所示

import numpy as npimport torch import torch.nn as nn import matplotlib.pyplot as plt from PIL import Imagemyim = Image.open("C:\\Users\\qiang\\Desktop\\Python語(yǔ)言\\lol英雄聯(lián)盟琴瑟仙女 水晶玫瑰 娑娜4k壁紙3840x2160_彼岸圖網(wǎng).jpg") myimgray=np.array(myim.convert("L"),dtype=np.float32) # plt.figure(figsize=(6,6)) # plt.imshow(myimgray,cmap=plt.cm.gray) # plt.axis("off") # plt.show()imh, imw = myimgray.shape myimgray_t = torch.from_numpy(myimgray.reshape((1,1,imh,imw))) print(myimgray_t.shape) kersize = 5 ker = torch.ones(kersize,kersize,dtype=torch.float32)*-1 print(ker) ker[2,2] = 24 print(ker) ker = ker.reshape((1,1,kersize,kersize)) print(ker) conv2d = nn.Conv2d(1,2,(kersize, kersize),bias=False) conv2d.weight.data[0] = ker imconv2dout= conv2d(myimgray_t) imconv2dout_im = imconv2dout.data.squeeze() print("卷積后尺寸:",imconv2dout_im.shape)maxpool2 = nn.MaxPool2d(2,stride=2) pool2_out = maxpool2(imconv2dout) pool2_out_im = pool2_out.squeeze() print('pool2_out.shape')plt.figure(figsize = (12,6)) plt.subplot(1,2,1) plt.imshow(pool2_out_im[0].data,cmap=plt.cm.gray) plt.axis("off") plt.subplot(1,2,2) plt.imshow(pool2_out_im[1].data,cmap=plt.cm.gray) plt.axis("off") plt.show()

AvgPool2d平均池化

對(duì)卷積后的輸出結(jié)果進(jìn)行平均池化,并進(jìn)行可視化操作

avgpool2 = nn.AvgPool2d(2,stride=2) pool2_out = avgpool2(imconv2dout) pool2_out_im = pool2_out.squeeze() print(pool2_out.shape) plt.figure(figsize = (12,6)) plt.subplot(1,2,1) plt.imshow(pool2_out_im[0].data,cmap=plt.cm.gray) plt.axis("off") plt.subplot(1,2,2) plt.imshow(pool2_out_im[1].data,cmap=plt.cm.gray) plt.axis("off") plt.show()

得到的可視化圖片如下所示

AdaptiveAvgPool2d自適應(yīng)平均池化

AdaAvgpool2 = nn.AdaptiveAvgPool2d(output_size=(100,100)) pool2_out = AdaAvgpool2(imconv2dout) pool2_out_im = pool2_out.squeeze() print(pool2_out.shape)plt.figure(figsize = (12,6)) plt.subplot(1,2,1) plt.imshow(pool2_out_im[0].data,cmap=plt.cm.gray) plt.axis("off") plt.subplot(1,2,2) plt.imshow(pool2_out_im[1].data,cmap=plt.cm.gray) plt.axis("off") plt.show()

可視化圖像如同所示

總結(jié)

以上是生活随笔為你收集整理的池化层:最大池化MaxPool、平均池化AvgPool、自适应池化AdaptiveMaxPool区别--基于pytorch框架的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。