首页 > 其他分享 >SFNet_FFTBlock验证模块的有效性

SFNet_FFTBlock验证模块的有效性

时间:2023-10-31 09:34:34浏览次数:37  
标签:fft torch SFNet nn self FFTBlock 模块 channel out

五、序号5,使用identityConv进行残差连接,最后对增强后的幅值、增强后的相位、空域进行Concat

class YYBlock(nn.Module):
    def __init__(self, in_channel=3, out_channel=20, relu_slope=0.2):
        super(YYBlock, self).__init__()

        self.spatialConv = nn.Sequential(*[
            nn.Conv2d(in_channel, out_channel, kernel_size=3, padding=1, bias=True),
            nn.LeakyReLU(relu_slope, inplace=False),
            nn.Conv2d(out_channel, out_channel, kernel_size=3, padding=1, bias=True),
            nn.LeakyReLU(relu_slope, inplace=False)
        ])

        self.identity = nn.Conv2d(in_channel, out_channel, 1, 1, 0)

        self.fftConv2 = nn.Sequential(*[
            nn.Conv2d(out_channel, out_channel, 1, 1, 0),
            nn.LeakyReLU(relu_slope, inplace=False),
            nn.Conv2d(out_channel, out_channel, 1, 1, 0)
        ])

        self.fusion = nn.Conv2d(out_channel * 3, out_channel, 1, 1, 0)

        # self.conv_01 = nn.Conv2d(in_size, out_size, 3, 1, 1)

    def forward(self, x1):
        spatial_out = self.spatialConv(x1)
        identity = self.identity(x1)
        out = spatial_out + identity

        x_fft = torch.fft.rfft2(out, norm='backward')
        x_amp = torch.abs(x_fft)
        x_phase = torch.angle(x_fft)

        enhanced_phase = self.fftConv2(x_phase)
        enhanced_amp = self.fftConv2(x_amp)
        x_fft_out1 = torch.fft.irfft2(x_amp * torch.exp(1j * enhanced_phase), norm='backward')
        x_fft_out2 = torch.fft.irfft2(enhanced_amp * torch.exp(1j * x_phase), norm='backward')

        out = self.fusion(torch.cat([out, x_fft_out1, x_fft_out2], dim=1))

        return out
YYBlock

 

标签:fft,torch,SFNet,nn,self,FFTBlock,模块,channel,out
From: https://www.cnblogs.com/yyhappy/p/17799542.html

相关文章

  • 除了注意力机制,以下是一些可以集成到LSTM模型中的其他模块:
    我明白了,你说的是将模块集成到LSTM中以预测土壤湿度。除了注意力机制,以下是一些可以集成到LSTM模型中的其他模块:卷积神经网络(CNN):在LSTM之前添加卷积层,用于提取土壤湿度数据中的时空特征。卷积-递归神经网络(ConvLSTM):ConvLSTM结合了卷积和循环结构,适用于处理时空序列数......
  • 一个项目下有两个模块,被git识别为两个项目,需要分别推送不同仓库
    用IDEA创建git仓库写代码时,在新建SpringBoot模块后出现如下情况,两个模块分别对应两个不同的git仓库 解决方法:找到项目目录,在对应模块的隐藏文件夹中找到.git文件并删除删除后重新使用IDEA打开项目文件,IDEA会提示 点击配置后将目录映射中的serve移除可以看......
  • 模块基础
    模块基础物理构成  通信原理  协议架构  封装协议  各厂商信息查看:华为 华三 锐捷 Cisco Arista Juniper ......
  • 如何校准振弦采集模块以获得更准确的读数?
    如何校准振弦采集模块以获得更准确的读数?振弦采集模块是一种用于测量振弦传感器输出的模块。在使用振弦采集模块时,校准是非常重要的,因为它可以确保您获得准确的测量结果。本文将介绍如何校准振弦采集模块以获得更准确的读数。1.使用标准信号源进行校准首先,您需要使用标准信号......
  • BOSHIDA DC电源模块如何承受超负荷电流的能力
    BOSHIDADC电源模块如何承受超负荷电流的能力DC电源模块是现代电子设备中必不可少的部件,它们通常被用来将交流电转换为稳定的直流电,为电子设备提供所需的电力。在某些情况下,DC电源模块可能会遇到超负荷电流的情况,如启动过程中或异常负载等。因此,DC电源模块必须具备承受超负荷电流......
  • 如何校准振弦采集模块以获得更准确的读数?
    如何校准振弦采集模块以获得更准确的读数?振弦采集模块是一种用于测量振弦传感器输出的模块。在使用振弦采集模块时,校准是非常重要的,因为它可以确保您获得准确的测量结果。本文将介绍如何校准振弦采集模块以获得更准确的读数。使用标准信号源进行校准首先,您需要使用标准信号源进行校......
  • DC电源模块如何承受超负荷电流的能力
    BOSHIDADC电源模块如何承受超负荷电流的能力DC电源模块是现代电子设备中必不可少的部件,它们通常被用来将交流电转换为稳定的直流电,为电子设备提供所需的电力。在某些情况下,DC电源模块可能会遇到超负荷电流的情况,如启动过程中或异常负载等。因此,DC电源模块必须具备承受超负荷电流......
  • keycloak~为keycloak-services项目添加第三方模块(首创)
    我们在对keycloak框架中的核心项目keycloak-services进行二次开发过程中,发现了一个问题,当时有这种需求,在keycloak-services中需要使用infinispan缓存,我们直接添加infinispan-core引用之后,在启动keycloak进出错了,提示我们没有找到infinispan.Cache,于是我尝试了如下方法,最终解决了问......
  • 【全志R128外设模块配置】USB外设功能配置
    USB外设功能配置USB功能简介USB功能模块包括了USBHost,USBDevice和OTG功能。USBHost目前已经支持上的功能有:MassStorage,UVC。USBDevice目前已经支持上的功能有:ADB,UAC。OTG主要用作Host与Device的切换,如当板子通过USB线连接到USB主机(PC)上时,此时OTG是......
  • Python常用模块-20个常用模块总结
    目录time模块datetime模块random模块os模块sys模块json和pickle模块hashlib和hmac模块logging模块numpy模块pandas模块matplotlib模块re模块typing模块collections模块pathlib模块shutil模块xml模块subprocess模块configparser模块Python常用模块小结time模块......