pytorch 今日小知识2——F.avg_pool2d、clamp

今天看到
def gem(self, ipts):return F.avg_pool2d(ipts.clamp(min=self.eps).pow(self.p), (1, ipts.size(-1))).pow(1. / self.p)

这个函数中的F.avg_pool2d 不是很理解就查了一下

  1. ipts.clamp(1.0e-6):
    这个操作将ipts中的每个元素限制在[1.0e-6, +inf)的范围内。也就是说,任何小于1.0e-6(一个非常小的正数)的值都会被替换为1.0e-6,而大于或等于1.0e-6的值则保持不变。这样做通常是为了避免数值不稳定问题,尤其是在进行对数运算、除法运算或幂运算时。

  2. .pow(6.5):
    ipts(经过clamp操作后)中的每个元素提升到6.5的幂。

  3. F.avg_pool2d(..., (1, ipts.size(-1))):
    使用F.avg_pool2d函数对张量进行平均池化操作。这里有两个关键的参数:

    • 第一个参数是输入张量,即经过clamp和pow操作后的ipts
    • 第二个参数(1, ipts.size(-1))定义了池化窗口的大小。这里,池化窗口的高度为1(即在高度上不进行池化),而宽度为ipts的最后一个维度的大小(即ipts.size(-1))。这意味着池化操作将在最后一个维度上进行,并且沿着这个维度取平均值。
  4. .pow(1. / 6.5):
    将池化后的结果张量中的每个元素取6.5的倒数次幂。这实际上是前面.pow(6.5)操作的逆操作,用于恢复原始数据的某种形式

import torch
import torch.nn.functional as F

F.avg_pool2d()数据是四维输入
input维度: (batch_size,channels,height,width)
kenerl维度:(二维:表示width的跨度)channel和输入的channle一致,如果数据是三维,则channel为1.(如果只写一个数n,kenerl=(n,n))

stride默认和kenerl一致,这是个二维的,所以在height和width上均和kenerl一致,越界同样丢弃。跟cnn卷积一致

在H和W维度求平均

input=torch.randn(10,3,4,4)
m=F.avg_pool2d(input,(4,4))
print(m.size())torch.Size([10, 3, 1, 1])
input = torch.tensor([[1,1,1,1,1],[1,1,1,1,1],[0,0,0,1,1],[1,1,1,1,1],[1,1,1,1,1]]).unsqueeze(0).float()
print(input.size())
print(input)
m = F.avg_pool2d(input,kernel_size=(4,4))
m
torch.Size([1, 5, 5])
tensor([[[1., 1., 1., 1., 1.],[1., 1., 1., 1., 1.],[0., 0., 0., 1., 1.],[1., 1., 1., 1., 1.],[1., 1., 1., 1., 1.]]])
tensor([[[0.8125]]])input = torch.tensor([[1,1,1,1,1],[1,1,1,1,1],[0,0,0,1,1],[1,1,1,1,1],[1,1,1,1,1]]).unsqueeze(0).float()
print(input.size())
print(input)
m = F.avg_pool2d(input,kernel_size=(4,4),stride=1)
m
torch.Size([1, 5, 5])
tensor([[[1., 1., 1., 1., 1.],[1., 1., 1., 1., 1.],[0., 0., 0., 1., 1.],[1., 1., 1., 1., 1.],[1., 1., 1., 1., 1.]]])
tensor([[[0.8125, 0.8750],[0.8125, 0.8750]]])

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1381735.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

五、书架开发--5.书架分组功能开发

Dialog和ShelfGroupDialog的基本实现思路: 加入两个组件,一个是Dialog移出分组的弹窗,一个是ShelfGroupDialog,一个是create-api中加入这个ShelfGroupDialog 接下来我们看看这个移动书籍这个对话框的实现原理 如下,用…

2024 如何激活 Guitar Pro 8 .1 今天手把手教你

Guitar Pro 是一款倍受吉他手喜爱的吉他和弦、六线谱、BASS 四线谱绘制、打印、查看、试听软件,它也是一款优秀的 MIDI 音序器,MIDI 制作辅助工具,可以输出标准格式的 MIDI。GP 的过人之处就在于它可以直接用鼠标和键盘按标准的六线谱、四线谱…

小型时间继电器ST3PA-C DC24V 带插座PF085A 导轨安装 JOSEF约瑟

ST3P系列时间继电器 系列型号 ST3PF-2Z(JSZ3F-2Z) 5s AC110V ST3PF(JSZ3F) 10s AC48V ST3PC-1(AH3-3) 5s DC24V ST3PC-1(AH3-3) 2h AC220V ST3PC-F(JSZ3C-F) AC380V ST3PA-E(JSZ3A-E) DC24V ST3PA-F(JSZ3A-F) DC24V ST3PF(JSZ3F) 10s AC36V ST3PC-1(AH3-3) 10s AC24V ST3PC-1…

暴雨信息专场推介会亮相武汉国际创科展

4月14日,暴雨信息专场推介会亮相2024年武汉国际创科展。推介会以“智慧聚变新生”为主题,集中展示推介暴雨信息旗下多项颇具市场优势的智能化产品和解决方案,邀请多位专家分享在数字化转型领域的成果和实践经验,与业界同仁共同探讨…

贝叶斯公式中的先验概率、后验概率、似然概率

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。关…

在Windows上配置VS Code GO语言开发环境

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

基于Python的卷积网络的车牌识别系统,附源码

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

不要再纠结WPS超级会员了:这次WPS的新羊毛,你还不来薅?

WPS广告太多让人崩溃! 作为职场人士,我们在日常工作中难免会接触到各类办公软件。在国产办公软件中,WPS无疑占据了一席之地。必须承认,WPS在近几年里的发展可圈可点,功能日趋完善,为用户提供了极大的便利。…

C语言洛谷题目分享(9)奇怪的电梯

目录 1.前言 2.题目:奇怪的电梯 1.题目描述 2.输入格式 3.输出格式 4.输入输出样例 5.说明 6.题解 3.小结 1.前言 哈喽大家好啊,前一段时间小编去备战蓝桥杯所以博客的更新就暂停了几天,今天继续为大家带来题解分享,希望大…

Pytest小技巧:高效获取自动化测试结果

自动化测试用例在执行完成后,我们想要很清楚的查看到测试用例的执行结果,我们可以通过Pytest中的Hooks来进行获取吗? 其中Pytest中存在多个Hooks的函数,小编今天先简单介绍其中一种,通过pytest_runtest_makereport 获…

循环双链表的操作

归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍 收藏⭐ 留言​📝 每一个裂缝都是为透出光而努力&#…

python爬虫------- Selenium下篇(二十三天)

🎈🎈作者主页: 喔的嘛呀🎈🎈 🎈🎈所属专栏:python爬虫学习🎈🎈 ✨✨谢谢大家捧场,祝屏幕前的小伙伴们每天都有好运相伴左右,一定要天天…

EI级 | Matlab实现TCN-LSTM-MATT、TCN-LSTM、TCN、LSTM多变量时间序列预测对比

EI级 | Matlab实现TCN-LSTM-MATT、TCN-LSTM、TCN、LSTM多变量时间序列预测对比 目录 EI级 | Matlab实现TCN-LSTM-MATT、TCN-LSTM、TCN、LSTM多变量时间序列预测对比预测效果基本介绍程序设计参考资料 预测效果 基本介绍 【EI级】Matlab实现TCN-LSTM-MATT、TCN-LSTM、TCN、LSTM…

C语言面试题之寻找峰值

寻找峰值 实例要求 1、峰值元素是指其值严格大于左右相邻值的元素;2、给一个整数数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可;3、可以假设 nums[-1] n…

六、新闻主题分类任务

以一段新闻报道中的文本描述内容为输入,使用模型帮助我们判断它最有可能属于哪一种类型的新闻,这是典型的文本分类问题。我们这里假定每种类型是互斥的,即文本描述有且只有一种类型,例如一篇新闻不能即是娱乐类又是财经类&#xf…

基于微信小程序【原生】+ssm+mysql+jsp消防知识学习平台(含论文)

博主介绍: 大家好,本人精通Java、Python、C#、C、C编程语言,同时也熟练掌握微信小程序、Php和Android等技术,能够为大家提供全方位的技术支持和交流。 我有丰富的成品Java、Python、C#毕设项目经验,能够为学生提供各类…

PHP:IntelliJ IDEA 配置 PHP 开发环境及导入PHP项目

在创建PHP项目之前我们需要安装PHP插件,安装步骤如下:Windows:IntelliJ IDEA Ultimate 安装 PHP 插件-CSDN博客 1、导入已有PHP项目,导入之后选择,File > Setting 选择对应 CLL Interpreter,如果没有操…

最短网络kruskal算法

题目描述 农民约翰被选为他们镇的镇长!他其中一个竞选承诺就是在镇上建立起互联网,并连接到所有的农场。当然,他需要你的帮助。约翰已经给他的农场安排了一条高速的网络线路,他想把这条线路共享给其他农场。为了用最小的消费&…

docker-compose部署RabbitMQ(一步到位)

docker-compose如下 version: 3.1 services:rabbitmq:restart: alwaysimage: rabbitmq:managementcontainer_name: rabbitmqhostname: rabbitports:- 5672:5672- 15672:15672environment:TZ: Asia/ShanghaiRABBITMQ_DEFAULT_USER: rabbitRABBITMQ_DEFAULT_PASS: 123456volumes…

JS-demo轮播图效果实现

原生JS开发轮播图效果 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><meta name"viewport" content"widt…