小波卷积:扩大卷积感受野新方案
创作时间:
作者:
@小白创作中心
小波卷积:扩大卷积感受野新方案
引用
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
热门推荐
四海云游中山旅游攻略必去5个景点
Windows系统引导重建与修复指南
怎样才能更好地理解和尊重对方
尿酸高,如何让尿酸排出体外?为你总结了4个办法,值得一试
血常规异常是什么原因导致的
如何巧妙地撰写吸引眼球的自媒体文章标题?
如何应对市场低估股票的投资机会
最新AI创造力研究:艺术生产将如何变化
入宅仪式的7个步骤 简单入宅仪式的步骤
Word制作套打模板的详细步骤
FV车牌的多重含义与背后故事,展现个性和文化认同
脚踝疼痛的原因及缓解方法
实践指南:提升生活质量,实现全面享受
金盏花的功效与作用、禁忌和食用方法
合同是否必须写明月薪与绩效拆分方式?2025年最全拆解
智慧校园信息系统:打造高效智能化教育管理
如何确保飘窗的安全性?飘窗设计时应注意哪些安全规范?
探索精油的神奇之处:促进头发生长的7种精油
掌握RAG查询优化技巧,让你的检索与生成效率翻倍!
简历语言描述技巧
TPE材料和硅胶如何分辨(硅胶与TPE有哪些区别)
一文读懂温湿度传感器
如何测试耳机好坏软件
新能源与绿色科技发展趋势
如何强化肩部三角肌?4个方法,附一组肩部训练动图
AI将提升科幻文学的创造力
存款利率下调,储户如何应对?
基于STM32和AI语音识别的智能家居系统设计详解
癢到凍未條!冬季癢怎麼辦?換季6招止癢方法,遠離狂癢噩夢
突然晕倒是什么原因造成的