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

参数kernel_size,stride, padding,dilation数据类型: 可以是一个int类型的数据,此时卷积height和width值相同; 也可以是一个tuple数组(包含来两个int类型的数据),第一个int数据表示height的数值,tuple的第二个int类型的数据表示width的数值

参数:

(1)kernel_size(int or tuple)              - max pooling的窗口大小
(2)stride(int or tuple, optional)         - max pooling的窗口移动的步长。默认值是kernel_size
(3)padding(int or tuple, optional)     - 输入的每一条边补充0的层数
(4)dilation(int or tuple, optional)      - 一个控制窗口中元素步幅的参数
(5)return_indices - 如果等于True,会返回输出最大值的序号,对于上采样操作会有帮助
(6)ceil_mode - 如果等于True,计算输出信号大小的时候,会使用向上取整,代替默认的向下取整的操作

import os
import torch.nn as nn
import torch
from PIL import Image
import numpy as np
from torchvision import transforms
import torchvision
import torch.nn.functional as Fclass Maxpool(nn.Module):def __init__(self):    # 传入需要初始化的参数,此例中无super(Maxpool, self).__init__()self.maxpool = nn.MaxPool2d(kernel_size=2, stride=2)def forward(self, x):x = self.maxpool(x)          return ximg_dir = './output10000/'
img_names = [i for i in os.listdir(img_dir)]     # 获取图像名称到img_names列表中
img_path = [img_dir + i for i in img_names]      # 获取图像路径到img_path列表中
# print(img_names[1])
# print(img_path[1])img = Image.open(img_path[2]).convert('RGB')
# PIL.Image 或者 numpy.ndarray 为(H,W,C) range[0, 255]
# print(img_tensor.size())
# print(type(img))transf = transforms.ToTensor()
img_tensor = transf(img)
# torch.FloatTensor() 为 (C,H,W) range[0.0, 1.0]
# print(img_tensor.size())
# print(type(img))# 实例化模型
model = Maxpool()
print(model)# 传入图片 tensor类型
output = model(img_tensor)
# print(output)# torch的tensor类型,保存图片并输出
output_path = r'./outputmaxpool/'
if not os.path.exists(output_path):os.mkdir(output_path)
torchvision.utils.save_image(output, output_path + img_names[2])
# torchvision.utils.save_image(output, './outputcnnpool/result44.png')

网络模型:

输入与输出图像尺寸:

torch实现图像的Maxpool相关推荐

  1. 3D 池化(MaxPool3D) 和 3D(Conv3d) 卷积详解

    3D 池化(MaxPool3D) 和 3D(Conv3d) 卷积详解 池化和卷积的过程是类似的,只是池化没有权重,相比起来更容易说明计算的过程.这里从 3D 池化开始详细介绍 MaxPool3D 和 ...

  2. [基本功]pytorch基本操作教程

    文章目录 数据加载 Dataset Dataloader 可视化--TensorBoard Transform ToTensor Nomalize Resize RandomCrop torch.nn ...

  3. PyTorch 1.7发布:支持CUDA 11、Windows分布式训练

    木易 发自 凹非寺  量子位 报道 | 公众号 QbitAI 自从7月份CUDA 11发布以来,就陆陆续续听到了网友类似的吐槽: 这正说着,10月27日,PyTorch团队发布了PyTorch 1.7 ...

  4. Fastai-数据准备

    Fastai数据准备 简介 数据是深度学习的立足之本,本文主要介绍Fastai框架如何进行数据加载与数据预处理. 模块划分 在之前的Fastai简介文章我提到过,Fastai最核心的API是按照应用领 ...

  5. [Machine learning] 国外程序员整理的机器学习资源大全

    阅读目录 本文汇编了一些机器学习领域的框架.库以及软件(按编程语言排序). 1. C++ 1.1 计算机视觉 CCV -基于C语言/提供缓存/核心的机器视觉库,新颖的机器视觉库 OpenCV-它提供C ...

  6. 最全的国外机器学习资源(上)

    这次又准备了什么必备收藏? 不怕闪瞎你的金刚钻钛合金人眼! 全是机器学习最牛B的框架.库和软件! 小编吐血整理,堪称史上最全! 一.C++ 计算机视觉 CCV-基于C语言/提供缓存/核心的机器视觉库, ...

  7. 国外程序员整理机器学习资源大全

    我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列的资源整理.awesome-machine-learning 就是 josephmisiti 发起维护的机器学习资源列表 ...

  8. 国外牛人总结的机器学习领域的框架、库以及软件

    国外牛人总结的机器学习领域的框架.库以及软件 本文汇编了一些机器学习领域的框架.库以及软件(按编程语言排序). C++计算机视觉 CCV -基于C语言/提供缓存/核心的机器视觉库,新颖的机器视觉库 O ...

  9. ViT-Adapter:Vision Transformer Adapter for Dense Predictions

    ViT-Adapter:Vision Transformer Adapter for Dense Predictions 论文地址:https://arxiv.org/abs/2205.0853 SL ...

最新文章

  1. 一致性 hash 算法( consistent hashing )
  2. 为什么说Java是2021年最值得学的技术?
  3. 腾讯胡珀:数字时代,每个人的安全都值得被守护
  4. consul配置参数大全、详解、总结
  5. 提高篇 第三部分 图论 第1章 最小生成树
  6. 高效算法之时间复杂度介绍
  7. 字符串算法 —— 两字符串相同的单词
  8. 基于MATLAB的人脸识别研究
  9. 集合操作retainAll和removeAll
  10. 贴片工字电感的封装及结构
  11. Revit二次开发——单位转换
  12. 嵌入式和单片机有什么区别
  13. c语言坐标反算方位角函数,反三角函数/简易正反算or方位角转度分秒
  14. vue服务端渲染——项目搭建、开发、生产环境的部署、浏览渲染、SEO优化
  15. 自旋锁、阻塞锁、可重入锁、悲观锁、乐观锁、读写锁、偏向所、轻量级锁、重量级锁、锁膨胀、对象锁和类锁
  16. 圆柱贴180度全景图片
  17. 【OpenCV】双目相机测距及其深度恢复原理及其算法流程
  18. 为华生物NH2-PEG2000-MAL氨基聚乙二醇马来酰亚胺的简介及应用
  19. 啃下这三块最难啃的硬骨头,你将在嵌入式C语言中大放异彩
  20. 如何制定有效的项目计划,提高团队执行力

热门文章

  1. C4(1) 三字棋代码实现
  2. 邓应海:4.20黄金原油晚间涨跌走势分析及策略布局
  3. IT人物之《Netty权威指南》中文作者 专访华为李林锋:我与Netty那些不得不说的事
  4. th和td标签的区别?
  5. 微信支付服务端自动对账
  6. Vue项目部署及使用WebStorm开发Vue
  7. gis map数据包_arcgis mpk 打包地图 (数据管理)
  8. 技术评审中常见的一些问题
  9. Anchor Boxes详解
  10. 相关算法---动态规划