如何用pytorch调用预训练Swin Transformer中的一个Swin block模块

1,首先,我们需要知道的是,想要调用预训练的Swin Transformer模型,必须要安装pytorch2,因为pytorch1对应的torchvision中不包含Swin Transformer。

2,pytorch2调用预训练模型时,不建议使用pretrained=True,这个用法即将淘汰,会报警告。最好用如下方式:

from torchvision.models.swin_transformer import swin_b, Swin_B_Weights  model = swin_b(weights=Swin_B_Weights.DEFAULT)  

这里调用的就是swin_b在imagenet上的预训练模型

3,swin_b的模型结构如下(仅展示到第一个patch merging部分),在绝大部分情况下,我们可能需要的不是整个模型,而是其中的一个模块,比如SwinTransformerBlock。

SwinTransformer((features): Sequential((0): Sequential((0): Conv2d(3, 128, kernel_size=(4, 4), stride=(4, 4))(1): Permute()(2): LayerNorm((128,), eps=1e-05, elementwise_affine=True))(1): Sequential((0): SwinTransformerBlock((norm1): LayerNorm((128,), eps=1e-05, elementwise_affine=True)(attn): ShiftedWindowAttention((qkv): Linear(in_features=128, out_features=384, bias=True)(proj): Linear(in_features=128, out_features=128, bias=True))(stochastic_depth): StochasticDepth(p=0.0, mode=row)(norm2): LayerNorm((128,), eps=1e-05, elementwise_affine=True)(mlp): MLP((0): Linear(in_features=128, out_features=512, bias=True)(1): GELU(approximate='none')(2): Dropout(p=0.0, inplace=False)(3): Linear(in_features=512, out_features=128, bias=True)(4): Dropout(p=0.0, inplace=False)))(1): SwinTransformerBlock((norm1): LayerNorm((128,), eps=1e-05, elementwise_affine=True)(attn): ShiftedWindowAttention((qkv): Linear(in_features=128, out_features=384, bias=True)(proj): Linear(in_features=128, out_features=128, bias=True))(stochastic_depth): StochasticDepth(p=0.021739130434782608, mode=row)(norm2): LayerNorm((128,), eps=1e-05, elementwise_affine=True)(mlp): MLP((0): Linear(in_features=128, out_features=512, bias=True)(1): GELU(approximate='none')(2): Dropout(p=0.0, inplace=False)(3): Linear(in_features=512, out_features=128, bias=True)(4): Dropout(p=0.0, inplace=False))))(2): PatchMerging((reduction): Linear(in_features=512, out_features=256, bias=False)(norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True))

那么如何调用其中的SwinTransformerBlock呢。

由于该模型是个嵌套结构,而不是类似vgg一样简单的结构,所以不能直接用layer0=model.SwinTransformerBlock调用。

因为SwinTransformerBlock是Sequential下的子模块,故正确的调用代码如下:

swinblock = model.features[1][0]

结果如下,调用成功:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/764259.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【python】python3基础

文章目录 一、安装pycharm 二、输入输出输出 print()文件输出:格式化输出: 输入input注释 三、编码规范四、变量保留字变量 五、数据类型数字类型整数浮点数复数 字符串类型布尔类型序列结构序列属性列表list ,有序多维列表列表推导式 元组tu…

std::thread使用及实现原理精讲(全)

C进阶专栏:http://t.csdnimg.cn/HGkeZ 相关系列文章: std::thread使用及实现原理精讲(全) 有了std::thread,为什么还需要引入std::jthread? 目录 1.windows创建线程 2.linux创建线程 3._beginthread小融合 4.CreateThread与_…

基于python+vue网络相册设计与实现flask-django-nodejs-php

网络相册设计与实现的目的是让使用者可以更方便的将人、设备和场景更立体的连接在一起。能让用户以更科幻的方式使用产品,体验高科技时代带给人们的方便,同时也能让用户体会到与以往常规产品不同的体验风格。 与安卓,iOS相比较起来&#xff0…

构造函数(原型和原型链)

原型和原型链 今日目标:原型和原型链是高频面试题 1.原型 2.原型链 要求:清晰的说出来原型和原型链的概念和特性。并能手绘原型和原型链图 3.swiper轮播图插件的使用 00-回顾 # 面向过程: 概念: 根据流程步骤一步步实现特定…

CentOS/RHEL 6.5 上 NFS mount 挂起kernel bug

我本身有四台机器做WAS集群,挂载nfs,其中随机一台客户端计算机端口关闭释放将进入不良状态,对 NFSv4 挂载的任何访问都将挂起(例如“ls,cd 或者df均挂起”)。这意味着没有人并且所有需要访问共享的用户进程…

久菜盒子|留学|推荐信|专业课老师|结构抗震设计

在众多学生当中,10这名学生给我留下了更深的印象,她对学习的认真态度、一丝不苟的精神,都让我感受到她的与众不同。因此,作为我校土木工程学院的前院长,我对于 10 申请贵校表示支持并毫无保留的推荐这位学生。 在结构抗…

深度学习图像处理02:Tensor数据类型

上一讲深度学习图像处理01:图像的本质,我们了解到图像处理的本质是对矩阵的操作。这一讲,我们讲介绍深度学习图像处理的基本数据类型:Tensor类型。 在深度学习领域,Tensor是一种核心的数据结构,用于表示和…

复旦大学MBA:iLab项目探寻科技创新 助力企业出海

2024年2月底,新一轮复旦MBA iLab商业咨询项目(以下简称iLab项目)正式拉开序幕。      科创大时代,如何于变局中创新突破、绘就商业“蓝图”?怎样把握ESG投资机遇,创造可持续发展的未来?如何…

图论07-被包围的区域(Java)

7.被包围的区域 题目描述 给你一个 m x n 的矩阵 board ,由若干字符 X 和 O ,找到所有被 X 围绕的区域,并将这些区域里所有的 O 用 X 填充。 示例 1: 输入:board [["X","X","X",&qu…

2.6、媒体查询(mediaquery)

概述 媒体查询作为响应式设计的核心,在移动设备上应用十分广泛。媒体查询可根据不同设备类型或同设备不同状态修改应用的样式。媒体查询常用于下面两种场景: 针对设备和应用的属性信息(比如显示区域、深浅色、分辨率),设计出相匹配的布局。当屏幕发生动态改变时(比如分屏…

V2X技术与智能传感器的完美融合:提升城市道路安全

在科技不断创新的今天,城市交通领域涌现了大量新技术。有时候我们不仅仅需要独立应用这些新技术来实现交通的变革,更需要将它们巧妙地结合连接起来,以获取更高效更安全的交通环境。本文将探讨V2X技术与智能传感器的结合,如何在城市…

专为智能设备安全打造 | 基于ACM32 MCU的智能断路器方案

随着我国电网建设的快速发展,数字化变电站成为建设和研究的热点,数字化变电站的核心在于一次设备的智能化与二次设备的网络化,对于断路器这种极其重要的电力一次设备而言,其智能化的实现有十分重要的意义,断路器智能化…

平衡隐私与效率,Partisia Blockchain 解锁数字安全新时代

原文:https://cointelegraph.com/news/exploring-multiparty-computations-role-in-the-future-of-blockchain-privacy; https://medium.com/partisia-blockchain/unlocking-tomorrow-outlook-for-mpc-in-2024-and-beyond-cb170e3ec567 编译&#xff1…

skywalking监听apisix

一、原理 Skywalking结合OpenTelemetry Collector Apisix的promethus插件实现对apisix metrics数据的收集。 二、数据流图 1. Apisix Promethus插件从Apisix收集指标数据。 2. OpenTelemetry Collector通过promethus receiver获取来自Apisix Promethus插件的指标数据&#…

python的OA公文发文管理系统flask-django-php-nodejs

采用结构化的分析设计,该方法要求结合一定的图表,在模块化的基础上进行系统的开发工作。在设计中采用“自下而上”的思想,在OA公文发文管理系统实现了用户、公文分类、公文信息、待办提醒等的功能性。系统根据现有的管理模块进行开发和扩展&a…

为什么本地开发环境通常使用 HTTP 而不是 HTTPS

简单快捷:HTTP 相对于 HTTPS 更简单和快速。在开发过程中,可能频繁地修改代码并测试,使用 HTTP 可以减少一些开发中的额外步骤和复杂性。 不涉及敏感信息:在本地开发环境中,通常不涉及真实用户数据或敏感信息的传输&a…

(附源码)基于Spring Boot和Vue的前后端分离考研资料分享平台的设计与实现

前言 💗博主介绍:✌专注于Java、小程序技术领域和毕业项目实战✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 2024年Java精品实战案例《100套》 🍅文末获取源码联系🍅 &#x1f31…

利用Node.js模块在Electron中进行文件系统操作实战(下)

利用Node.js模块在Electron中进行文件系统操作实战(下) 更详细的文件权限控制文件锁(File Locking)临时文件符号链接(Symbolic Links)和硬链接(Hard Links)文件监视(File…

旅游网站|基于JSP技术+ Mysql+Java+ B/S结构的旅游网站设计与实现(可运行源码+数据库+设计文档)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含java,ssm,springboot的平台设计与实现项目系统开发资源(可…

「媒体宣传」企业活动发布会邀请媒体报道的好处与优势?

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 企业活动发布会邀请媒体报道具有多种好处与优势,这些都有助于提升企业的知名度、形象和影响力。以下是一些主要的好处与优势: 提升品牌知名度:媒体报道…