首页 > 其他分享 >Multi-Scale and Detail-Enhanced Segment Anything-1-LMSA-轻量级多尺度适配器

Multi-Scale and Detail-Enhanced Segment Anything-1-LMSA-轻量级多尺度适配器

时间:2024-11-07 22:57:12浏览次数:3  
标签:dim Multi nn 适配器 down hidden self 轻量级 size

`
import torch.nn as nn
import torch
import torch.nn.functional as F
class ModifyPPM(nn.Module):
def init(self, in_dim, reduction_dim, bins):
super(ModifyPPM, self).init()
self.features = []
for bin in bins:
self.features.append(nn.Sequential(
nn.AdaptiveAvgPool2d(bin),
nn.Conv2d(in_dim, reduction_dim, kernel_size=1),
nn.GELU(),
nn.Conv2d(reduction_dim, reduction_dim, kernel_size=3, bias=False, groups=reduction_dim),
nn.GELU()
))
self.features = nn.ModuleList(self.features)
self.local_conv = nn.Sequential(
nn.Conv2d(in_dim, in_dim, kernel_size=3, padding=1, bias=False, groups=in_dim),
nn.GELU(),
)

def forward(self, x):
    x_size = x.size()
    out = [self.local_conv(x)]
    for f in self.features:
        out.append(F.interpolate(f(x), x_size[2:], mode='bilinear', align_corners=True))
    return torch.cat(out, 1)

class LMSA(nn.Module):
def init(self, in_dim, hidden_dim, patch_num):
super().init()
self.down_project = nn.Linear(in_dim,hidden_dim)
self.act = nn.GELU()
self.mppm = ModifyPPM(hidden_dim, hidden_dim //4, [3,6,9,12])
self.patch_num = patch_num
self.up_project = nn.Linear(hidden_dim, in_dim)
self.down_conv = nn.Sequential(nn.Conv2d(hidden_dim*2, hidden_dim, 1),
nn.GELU())

def forward(self, x):
    down_x = self.down_project(x)
    down_x = self.act(down_x)

    down_x = down_x.permute(0, 3, 1, 2).contiguous()
    down_x = self.mppm(down_x).contiguous()
    down_x = self.down_conv(down_x)
    down_x = down_x.permute(0, 2, 3, 1).contiguous()

    up_x = self.up_project(down_x)
    return x + up_x

if name == 'main':
in_dim=128
hidden_dim=64
patch_num=16

block = LMSA(in_dim,hidden_dim,patch_num).cuda()
input = torch.randn(1, patch_num, patch_num, in_dim).cuda() #输入 B C H W
output = block(input)

print(input.size())
print(output.size())

`

标签:dim,Multi,nn,适配器,down,hidden,self,轻量级,size
From: https://www.cnblogs.com/plumIce/p/18534191

相关文章

  • CrewAI-Multimodal-Agent
    CrewAI-Multimodal-Agenthttps://github.com/mdwoicke/CrewAI-Multimodal-Agent #AICrewforReviewingMarkdownSyntax##IntroductionThisprojectisanexampleusingtheCrewAIframeworktoautomatetheprocessreviewingamarkdownfileforsyntaxiss......
  • 【YOLOv11改进 - 注意力机制】EMA(Efficient Multi-Scale Attention):基于跨空间学习的高
    介绍摘要通道或空间注意力机制在许多计算机视觉任务中表现出显著的效果,可以生成更清晰的特征表示。然而,通过通道维度缩减来建模跨通道关系可能会对提取深度视觉表示带来副作用。本文提出了一种新颖高效的多尺度注意力(EMA)模块。该模块着重于保留每个通道的信息并减少计算开销,我......
  • 【漏洞复现】灵当CRM multipleUpload.php 任意文件上传漏洞
    免责声明:        本文旨在提供有关特定漏洞的信息,以帮助用户了解潜在风险。发布此信息旨在促进网络安全意识和技术进步,并非出于恶意。读者应理解,利用本文提到的漏洞或进行相关测试可能违反法律或服务协议。未经授权访问系统、网络或应用程序可能导致法律责任或严......
  • CDDFuse: Correlation-Driven Dual-Branch Feature Decomposition for Multi-Modality
    文章信息标题CDDFuse:Correlation-DrivenDual-BranchFeatureDecompositionforMulti-ModalityImageFusion会议及时间CVPR2023主要内容为了解决建模跨模态特征和分解期望模态特有和模态共有特征的挑战,本文提出了一种用于多模态图像融合的双分支Transformer-CNN架构CDD......
  • 基于Multisim篮球比赛24S倒计时电路(含仿真和报告)
    【全套资料.zip】篮球比赛24S倒计时电路设计Multisim仿真设计数字电子技术文章目录功能一、Multisim仿真源文件二、原理文档报告资料下载【Multisim仿真+报告+讲解视频.zip】功能篮球比赛24S倒计时功能:1.具有数码管显示24S计时功能。2.设置外部开关,可以直接启动......
  • 基于Multisim光控夜灯LED电路(含仿真和报告)
    【全套资料.zip】光控夜灯LED电路设计Multisim仿真设计数字电子技术文章目录功能一、Multisim仿真源文件二、原理文档报告资料下载【Multisim仿真+报告+讲解视频.zip】功能光控夜灯LED电路1.采用纯数字电路,非单片机。2.通过检测周围光线,光线暗自动开灯,光线亮自......
  • 【文献阅读】Multi-region radiomics for artificially intelligent diagnosis of bre
    题目:基于多模态超声的人工智能诊断乳腺癌的多区域放射组学研究摘要:目的:乳腺癌的超声(US)诊断通常是基于单一的超声方式对整个乳腺肿瘤的单一区域,这限制了诊断性能。在乳腺肿瘤的多模态超声图像上的多个区域都可能对诊断有有用的信息。本研究旨在提出一种多模态放射组学多模式......
  • 实验8:适配器模式
    本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解适配器模式的动机,掌握该模式的结构;2、能够利用适配器模式解决实际问题。[实验任务一]:双向适配器实现一个双向适配器,使得猫可以学狗叫,狗可以学猫抓老鼠。实验要求:1.画出对应的类图;2.提交源代码;3.注意编程规范......
  • 【文献阅读】Multimodal feature learning and fusion on B-mode ultrasonography and
    题目:基于点门控深度网络的b型超声和超声弹性成像的多模态特征学习与融合诊断摘要:b型超声和超声弹性成像可用于前列腺癌(PCa)的临床诊断。两种超声(US)模式的结合使用计算机辅助可能有助于提高诊断性能。提出了一种基于多模态超声的计算机辅助诊断(CAD)技术。首先,从b型US图像和超声......
  • 实验8:适配器模式
    [实验任务一]:双向适配器实现一个双向适配器,使得猫可以学狗叫,狗可以学猫抓老鼠。实验要求:1. 对应的类图: 2. 源代码:Cat接口: publicinterfaceCat{  voidcry();  voidcatchMouse();} 实体Cat类: publicclassConcreteCatimplementsCat{    @Over......