unfold的作用就是手动实现(卷积中)的滑动窗口操作,也就是只有卷,没有积

ret = F.unfold(inp, size)
  • inp:输入Tensor,必须是四维的(B, C, H, W)
  • size:元组,表示滑动窗口大小
  • ret:输出三维Tensor(a, b, c),a表示输入的batch数,b表示滑动窗口的大小,c表示滑动窗口滑动的次数

例如,对于一张1×1×5×5的如下特征图:

[[[[  1,  2,  3,  4,  5],[  6,  7,  8,  9, 10],[ 11, 12, 13, 14, 15],[ 16, 17, 18, 19, 20],[ 21, 22, 23, 24, 25]]]]

对其进行2×2的滑动窗口操作,过程是这样的:

1 2  ->  2 3  ->  3 4
6 7      7 8      8 9  ...

编写代码如下:

import torch
from torch.nn import functional as F x = torch.Tensor([[[[  1,  2,  3,  4,  5],[  6,  7,  8,  9, 10],[ 11, 12, 13, 14, 15],[ 16, 17, 18, 19, 20],[ 21, 22, 23, 24, 25]]]])
x = F.unfold(x, (2, 2))
print(x)
print(x.size())

输出如下:

tensor([[[ 1,  2,  3,  4,  6,  7,  8,  9, 11, 12, 13, 14, 16, 17, 18, 19],[ 2,  3,  4,  5,  7,  8,  9, 10, 12, 13, 14, 15, 17, 18, 19, 20],[ 6,  7,  8,  9, 11, 12, 13, 14, 16, 17, 18, 19, 21, 22, 23, 24],[ 7,  8,  9, 10, 12, 13, 14, 15, 17, 18, 19, 20, 22, 23, 24, 25]]])
torch.Size([1, 4, 16])

行数为4,即对应着2×2的滑动窗口大小;而每一列的元素为滑动窗口依次所覆盖的内容,一共滑动了16次,因此有16列。

Pytorch nn.functional.unfold()的简单理解与用法相关推荐

  1. Pytorch Tensor.unfold()的简单理解与用法

    unfold的作用就是手动实现的滑动窗口操作,也就是只有卷,没有积:不过相比于nn.functional中的unfold而言,其窗口的意味更浓,只能是一维的,也就是不存在类似2×2窗口的说法. ret ...

  2. Pytorch nn.functional.pad()的简单用法

    官方文档:https://pytorch-cn.readthedocs.io/zh/latest/package_references/functional/ 作用:进行填充,类似卷积里的paddin ...

  3. 【Pytorch 】nn.functional.unfold()==>卷积操作中的提取kernel filter对应的滑动窗口

    使用方法: def unfold(input, kernel_size, dilation=1, padding=0, stride=1):"""input: tenso ...

  4. torch.nn.functional.unfold 用法解读

    torch.nn.Unfold(kernel_size, dilation=1, padding=0, stride=1) 参数 kernel_size,滑动窗口的大小 dilation,和空洞卷积中 ...

  5. Pytorch nn.Fold()的简单理解与用法

    官方文档:https://pytorch.org/docs/stable/generated/torch.nn.Fold.html 这个东西基本上就是绑定Unfold使用的.实际上,在没有overla ...

  6. Pytorch nn.BCEWithLogitsLoss()的简单理解与用法

    这个东西,本质上和nn.BCELoss()没有区别,只是在BCELoss上加了个logits函数(也就是sigmoid函数),例子如下: import torch import torch.nn as ...

  7. Pytorch forward()的简单理解与用法

    1.基本用法 在pytorch中,使用torch.nn包来构建神经网络,我们定义的网络继承自nn.Module类.而一个nn.Module包含神经网络的各个层(放在__init__里面)和前向传播方式 ...

  8. Pytorch Dataset、Dataloader的简单理解与使用

    本文以torch.utils.data中的Dataset类为例进行说明 Dataset的作用是构建自定义的数据集,以方便使用Dataloader进行加载 语法 我们自定义的数据集需要继承自torch. ...

  9. torch.functional.unfold

    unfold其实功能很简单就是在N*C*H*W的H*W平面上取块,然后堆叠,主要用于CV中的patch提取. fold的功能与unfold相反,但块重叠部分是相加处理的,因此需要除以重叠次数. imp ...

最新文章

  1. 数据库查询性能优化之利器—索引(二)
  2. Eclipse中导入外部jar包
  3. websocket 获取连接id_nodejs做后端,用websocket写聊天室,怎么获取连接用户的ip呢?...
  4. 支持国产处理器仿真的全数字实时仿真平台SkyEye与可信编译器L2C的核心翻译步骤
  5. 95-860-050-源码-定时器-InternalTimeServiceManager
  6. Python爬虫之一键保存全部必应高清1080P壁纸
  7. 手动写一个上传图片的组件,不适用插件,包括限制图片大小,格式
  8. Atitit 搜索工程师的知识点体系总结 目录 1.1. 理论类 索引 与查询 1 1.2. 类库类 1 1.3. 关联知识类 1 1.4. 其他 1 2. Ref 2 2.1. Atitit 文
  9. VMware虚拟机安装win10 32位
  10. WindowsXP音量控制程序的安装
  11. WIN7中如何卸载IE8或IE9
  12. jQuery学习笔记(三)jQuery动画效果
  13. 在SQuAD2.0榜单上出现过的部分模型详解StructBert,T5,RoBERTa,RetroReader,ALBert
  14. 企立方-拼多多采集注意的点有哪些
  15. Variant数据类型
  16. postman接口自动化图文案例介绍
  17. python3新式类_Python中新式类与经典类的区别详析
  18. java抽象类计算正方体面积_怎么用java里抽象类的方式计算相应形状的面积
  19. Sentinel demo
  20. 算法流程图组件的基本含义及画法举例(Kmeans)

热门文章

  1. python写xml文件_python写入xml文件的方法
  2. android jar包冲突_用好这几个技巧,解决Maven Jar包冲突易如反掌
  3. php-fpm nginx 关系,nginx 和php-fpm关系
  4. iis7mysql 链接不上_Win7 64位IIS7出现数据库链接出错的解决办法
  5. 让电脑代码满屏飞_程序员想让你的电脑死机,需要多久?
  6. 1007 素数对猜想(C语言)
  7. CS231n——编程作业环境配置
  8. Eclipse中好用的快捷键
  9. Python Tkinter之variable用法
  10. 【日期类问题】例2.1日期差值