小波卷积:扩大卷积感受野新方案
创作时间:
作者:
@小白创作中心
小波卷积:扩大卷积感受野新方案
引用
CSDN
1.
https://m.blog.csdn.net/m0_73707009/article/details/145504803
在计算机视觉领域,卷积神经网络(CNN)一直是核心模型架构。然而,传统 CNN 在处理大尺度特征和全局信息时存在一定局限性,因此扩大卷积的感受野成为了提升模型性能的关键方向。近期,研究人员提出了一种基于小波变换的卷积层 ——WTConv,能够在不引入过多参数的情况下有效扩大卷积的感受野。本文将详细介绍如何实现一个即插即用的 WTConv2d 模块,并展示其在深度可分离卷积中的应用。
WTConv2d 模块原理
WTConv2d 模块的核心思想是利用小波变换将输入特征图分解为不同频率的分量,然后对这些分量分别进行小核深度卷积,最后通过逆小波变换将处理后的分量重新组合成输出特征图。这种方法能够在增加感受野的同时,避免因增大卷积核尺寸而导致的过参数化问题。
import pywt
import pywt.data
import torch
from torch import nn
from functools import partial
import torch.nn.functional as F
def create_wavelet_filter(wave, in_size, out_size, type=torch.float):
w = pywt.Wavelet(wave)
dec_hi = torch.tensor(w.dec_hi[::-1], dtype=type)
dec_lo = torch.tensor(w.dec_lo[::-1], dtype=type)
dec_filters = torch.stack([dec_lo.unsqueeze(0) * dec_lo.unsqueeze(1),
dec_lo.unsqueeze(0) * dec_hi.unsqueeze(1),
dec_hi.unsqueeze(0) * dec_lo.unsqueeze(1),
dec_hi.unsqueeze(0) * dec_hi.unsqueeze(1)], dim=0)
dec_filters = dec_filters[:, None].repeat(in_size, 1, 1, 1)
rec_hi = torch.tensor(w.rec_hi[::-1], dtype=type).flip(dims=[0])
rec_lo = torch.tensor(w.rec_lo[::-1], dtype=type).flip(dims=[0])
rec_filters = torch.stack([rec_lo.unsqueeze(0) * rec_lo.unsqueeze(1),
rec_lo.unsqueeze(0) * rec_hi.unsqueeze(1),
rec_hi.unsqueeze(0) * rec_lo.unsqueeze(1),
rec_hi.unsq
本文原文来自CSDN
热门推荐
柔性屏是什么意思?手机屏幕类型哪种好?
耳石症的6个早期征兆及缓解方法
心理科普 | 分离焦虑
风景摄影构图全攻略:从入门到精通
令开场白引人入胜的五个诀窍
李约瑟难题及当前中国科技发展的启示
布艺沙发如何自己清洗
云盘资源搜索引擎,如何高效寻找和下载云端文件?
檸檬在料理中的應用:掌握烹調技巧,完整保留營養
盗版行为是什么?危害与应对措施全解析
质量胜于数量:知心朋友的不可替代价值
双向情感障碍的治疗方法有哪些
短语动词的被动语态问题分析
股价大涨46% 创年内新高!A股最热门板块 机构扎堆调研
没钱交房租怎么办?5个实用应对策略帮你渡过难关
延迟交房租怎么处理好
品质之魂,成语之韵:探寻中华文化中的道德精髓
伤残等级划分:中国法律体系下的具体规定与适用
陈年黄酒口味:回味无穷
如何制作麻婆豆腐
咽喉炎扁桃体炎的中药治疗
心理援助与抗灾心理疏导方案
绿色建筑:引领可持续发展的趋势
高效沟通协作:打破界限,共创共赢局面
高血压饮食管理的重要性与未来展望
如何实现手机或平板使用Obsidian笔记时一键云同步文档数据
揭秘仪器精度之谜:分度值是什么?
它发了芽再吃,不但没毒,反而营养翻倍!别再扔掉了
遇到冰雹怎么办?三招教你科学避险!
【丙肝科普】别让丙肝伤了肝 “沉默杀手”不容小觑