首页 > 其他分享 >DGMA2-Net - MSFF- 提取多尺度特征及特征融合

DGMA2-Net - MSFF- 提取多尺度特征及特征融合

时间:2024-11-27 21:12:15浏览次数:5  
标签:BatchNorm2d nn self MSFF mid inchannel DGMA2 Net channel

import torch
import torch.nn as nn

class MSFF(nn.Module):
    def __init__(self, inchannel, mid_channel):
        super(MSFF, self).__init__()
        self.conv1 = nn.Sequential(nn.Conv2d(inchannel, inchannel, 1, stride=1, bias=False),
                                   nn.BatchNorm2d(inchannel),
                                   nn.ReLU(inplace=True))
        self.conv2 = nn.Sequential(nn.Conv2d(inchannel, mid_channel, 1, stride=1, bias=False),
                                   nn.BatchNorm2d(mid_channel),
                                   nn.ReLU(inplace=True),
                                   nn.Conv2d(mid_channel, mid_channel, 3, stride=1, padding=1, bias=False),
                                   nn.BatchNorm2d(mid_channel),
                                   nn.ReLU(inplace=True),
                                   nn.Conv2d(mid_channel, inchannel, 1, stride=1, bias=False),
                                   nn.BatchNorm2d(inchannel),
                                   nn.ReLU(inplace=True))
        self.conv3 = nn.Sequential(nn.Conv2d(inchannel, mid_channel, 1, stride=1, bias=False),
                                   nn.BatchNorm2d(mid_channel),
                                   nn.ReLU(inplace=True),
                                   nn.Conv2d(mid_channel, mid_channel, 5, stride=1, padding=2, bias=False),
                                   nn.BatchNorm2d(mid_channel),
                                   nn.ReLU(inplace=True),
                                   nn.Conv2d(mid_channel, inchannel, 1, stride=1, bias=False),
                                   nn.BatchNorm2d(inchannel),
                                   nn.ReLU(inplace=True))
        self.conv4 = nn.Sequential(nn.Conv2d(inchannel, mid_channel, 1, stride=1, bias=False),
                                   nn.BatchNorm2d(mid_channel),
                                   nn.ReLU(inplace=True),
                                   nn.Conv2d(mid_channel, mid_channel, 7, stride=1, padding=3, bias=False),
                                   nn.BatchNorm2d(mid_channel),
                                   nn.ReLU(inplace=True),
                                   nn.Conv2d(mid_channel, inchannel, 1, stride=1, bias=False),
                                   nn.BatchNorm2d(inchannel),
                                   nn.ReLU(inplace=True))
        self.convmix = nn.Sequential(nn.Conv2d(4 * inchannel, inchannel, 1, stride=1, bias=False),
                                   nn.BatchNorm2d(inchannel),
                                   nn.ReLU(inplace=True),
                                   nn.Conv2d(inchannel, inchannel, 3, stride=1, padding=1, bias=False),
                                   nn.BatchNorm2d(inchannel),
                                   nn.ReLU(inplace=True))


    def forward(self, x):

        x1 = self.conv1(x)
        x2 = self.conv2(x)
        x3 = self.conv3(x)
        x4 = self.conv4(x)

        x_f = torch.cat([x1, x2, x3, x4], dim=1)
        out = self.convmix(x_f)

        return out

if __name__ == '__main__':
    x = torch.randn((32, 256, 32, 32))
    model = MPFL(256,64)
    out = model(x)
    print(out.shape)

可以把提取多尺度特征的部分中的卷积换成深度卷积 感觉还能把1*1的卷积也去掉 只要3 5 7 还能把激活函数也换掉比如relu6 或者其他的什么函数

标签:BatchNorm2d,nn,self,MSFF,mid,inchannel,DGMA2,Net,channel
From: https://www.cnblogs.com/plumIce/p/18573108

相关文章

  • 使用 Django 构建支持 Kubernetes API 测试连接的 POST 接口
    文章目录使用Django构建支持KubernetesAPI测试连接的POST接口功能需求使用kubectl获取Token命令解析输出示例完整代码实现KubernetesAPI客户端类功能说明Django接口视图关键点解析路由配置接口测试请求示例响应结果成功错误优化建议1.安全性2.错误......
  • .NET开发规范v1.0
    一、编程规范(一)命名风格命名要找更有表现力的词,更专业的词,比如获取数据不用get而使用fetch别害怕长名称,长而具有描述性的名称比短而令人费解的名称好为作用域大的名字采用更长的名字,作用域小的使用短名字给变量名带上重要的细节,比如加上单位ms等。【强制】严禁......
  • ASP.NET Core面试题汇总
    1.如何在controller中注入service?在configservices方法中配置这个service。在controller的构造函数中,添加这个依赖注入。 2.ASP.NETCore比ASP.NET更具优势的地方是什么?跨平台,ASP.NETCore可以运行在Windows、Linux和MAC系统上;对框架本安装没有依赖,所有依赖都跟......
  • asp.net core中webapi接口的动作与参数
    一、在asp.netcore的webapi可以指定接口的action动作类型,动作特性主要有Get,Post,Put,Delete,Head,Options,Patch,Trace,其中Get,Post,Delete是比较常用的1、Get:通常用于数据查询,请求参数一般是地址栏上的QueryString获取,请求参数默认为[FromQuery],该动作属于幂等操作①。......
  • linux网络启动不成功 systemctl restart networkTob)for network,service failed beca
    一、执行重启网络服务systemctlrestartnetwork然后报错二、执行systemctlstatusnetwork.service查看network服务的运行状态发现是active(exited)退出状态三、使用journalctl-Xe查看systemctl执行命令错误的详细信息发现网卡eth2的配置有问题,无法激活将eth2......
  • 启动容器报WARNING: IPv4 forwarding is disabled. Networking will not work.
    我运行容器dockerrun--namemy-nginx-d-p8080:80nginx:latest报这个错误WARNING:IPv4forwardingisdisabled.Networkingwillnotwork.查询发现是因为Ipv4转发功能被禁用了IP转发是指在一个路由器上允许数据包从一个接口转发到另一个接口的能力。在Docker中,......
  • 使用 BenchmarkDotNet 对 .NET 代码进行性能基准测试
    思维导航前言项目介绍项目特性创建控制台应用安装NuGet包进行性能基准测试性能测试多种格式输出项目源码地址优秀项目和框架精选前言在软件开发领域,性能基准测试是确保软件系统高效、稳定运行的重要环节。它可以帮助你评估应用程序的性能,了解其在不同条件下的......
  • 一个整合性、功能丰富的.NET网络通信框架
    前言最近有不少同学问:.NET网络通信框架有什么好推荐的吗?今天大姚给大家分享一款基于ApacheLicense开源的一个整合性、功能丰富的.NET(包括C#、VB.Net、F#)网络通信框架:TouchSocket。特色功能一键解决TCP黏分包问题,提供协议模板,支持快速实现固定包头、固定长度、区间字符......
  • .NET9 - Swagger平替Scalar详解(四)
    书接上回,上一章介绍了Swagger代替品Scalar,在使用中遇到不少问题,今天单独分享一下之前Swagger中常用的功能如何在Scalar中使用。下面我们将围绕文档版本说明、接口分类、接口描述、参数描述、枚举类型、文件上传、JWT认证等方面详细讲解。01、版本说明我们先来看看默认添加后是......
  • Nettt核心之Future与Promise
    在了解Future之前要明白线程同步和异步线程同步需要等待,线程异步无需等待Netty中的Future机制1,基于jdkFuture改造而来2,保留了同步获取结果的能力,也提供了异步的Listener机制Netty中的Future:Netty自己实现的Future继承了|DK的Future,新增了Listener机制,任务结束会回......