torch实现图像的Maxpool
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相关推荐
- 3D 池化(MaxPool3D) 和 3D(Conv3d) 卷积详解
3D 池化(MaxPool3D) 和 3D(Conv3d) 卷积详解 池化和卷积的过程是类似的,只是池化没有权重,相比起来更容易说明计算的过程.这里从 3D 池化开始详细介绍 MaxPool3D 和 ...
- [基本功]pytorch基本操作教程
文章目录 数据加载 Dataset Dataloader 可视化--TensorBoard Transform ToTensor Nomalize Resize RandomCrop torch.nn ...
- PyTorch 1.7发布:支持CUDA 11、Windows分布式训练
木易 发自 凹非寺 量子位 报道 | 公众号 QbitAI 自从7月份CUDA 11发布以来,就陆陆续续听到了网友类似的吐槽: 这正说着,10月27日,PyTorch团队发布了PyTorch 1.7 ...
- Fastai-数据准备
Fastai数据准备 简介 数据是深度学习的立足之本,本文主要介绍Fastai框架如何进行数据加载与数据预处理. 模块划分 在之前的Fastai简介文章我提到过,Fastai最核心的API是按照应用领 ...
- [Machine learning] 国外程序员整理的机器学习资源大全
阅读目录 本文汇编了一些机器学习领域的框架.库以及软件(按编程语言排序). 1. C++ 1.1 计算机视觉 CCV -基于C语言/提供缓存/核心的机器视觉库,新颖的机器视觉库 OpenCV-它提供C ...
- 最全的国外机器学习资源(上)
这次又准备了什么必备收藏? 不怕闪瞎你的金刚钻钛合金人眼! 全是机器学习最牛B的框架.库和软件! 小编吐血整理,堪称史上最全! 一.C++ 计算机视觉 CCV-基于C语言/提供缓存/核心的机器视觉库, ...
- 国外程序员整理机器学习资源大全
我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列的资源整理.awesome-machine-learning 就是 josephmisiti 发起维护的机器学习资源列表 ...
- 国外牛人总结的机器学习领域的框架、库以及软件
国外牛人总结的机器学习领域的框架.库以及软件 本文汇编了一些机器学习领域的框架.库以及软件(按编程语言排序). C++计算机视觉 CCV -基于C语言/提供缓存/核心的机器视觉库,新颖的机器视觉库 O ...
- ViT-Adapter:Vision Transformer Adapter for Dense Predictions
ViT-Adapter:Vision Transformer Adapter for Dense Predictions 论文地址:https://arxiv.org/abs/2205.0853 SL ...
最新文章
- 一致性 hash 算法( consistent hashing )
- 为什么说Java是2021年最值得学的技术?
- 腾讯胡珀:数字时代,每个人的安全都值得被守护
- consul配置参数大全、详解、总结
- 提高篇 第三部分 图论 第1章 最小生成树
- 高效算法之时间复杂度介绍
- 字符串算法 —— 两字符串相同的单词
- 基于MATLAB的人脸识别研究
- 集合操作retainAll和removeAll
- 贴片工字电感的封装及结构
- Revit二次开发——单位转换
- 嵌入式和单片机有什么区别
- c语言坐标反算方位角函数,反三角函数/简易正反算or方位角转度分秒
- vue服务端渲染——项目搭建、开发、生产环境的部署、浏览渲染、SEO优化
- 自旋锁、阻塞锁、可重入锁、悲观锁、乐观锁、读写锁、偏向所、轻量级锁、重量级锁、锁膨胀、对象锁和类锁
- 圆柱贴180度全景图片
- 【OpenCV】双目相机测距及其深度恢复原理及其算法流程
- 为华生物NH2-PEG2000-MAL氨基聚乙二醇马来酰亚胺的简介及应用
- 啃下这三块最难啃的硬骨头,你将在嵌入式C语言中大放异彩
- 如何制定有效的项目计划,提高团队执行力