当前位置: 首页 > news >正文

企业免费网站模板织梦网站0day漏洞

企业免费网站模板,织梦网站0day漏洞,青海城乡建设部网站首页,济南网络优化厂家#x1f6a9;#x1f6a9;#x1f6a9;Transformer实战-系列教程总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Pycharm中进行 本篇文章配套的代码资源已经上传 点我下载源码 SwinTransformer 算法原理 SwinTransformer 源码解读1#xff08;项目配置/SwinTr…Transformer实战-系列教程总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Pycharm中进行 本篇文章配套的代码资源已经上传 点我下载源码 SwinTransformer 算法原理 SwinTransformer 源码解读1项目配置/SwinTransformer类 SwinTransformer 源码解读2PatchEmbed类/BasicLayer类 SwinTransformer 源码解读3SwinTransformerBlock类 SwinTransformer 源码解读4WindowAttention类 SwinTransformer 源码解读5Mlp类/PatchMerging类 6、WindowAttention类 6.1 构造函数 class WindowAttention(nn.Module):def __init__(self, dim, window_size, num_heads, qkv_biasTrue, qk_scaleNone, attn_drop0., proj_drop0.):super().__init__()self.dim dimself.window_size window_sizeself.num_heads num_headshead_dim dim // num_headsself.scale qk_scale or head_dim ** -0.5self.relative_position_bias_table nn.Parameter(torch.zeros((2 * window_size[0] - 1) * (2 * window_size[1] - 1), num_heads))coords_h torch.arange(self.window_size[0])coords_w torch.arange(self.window_size[1])coords torch.stack(torch.meshgrid([coords_h, coords_w]))coords_flatten torch.flatten(coords, 1)relative_coords coords_flatten[:, :, None] - coords_flatten[:, None, :]relative_coords relative_coords.permute(1, 2, 0).contiguous()relative_coords[:, :, 0] self.window_size[0] - 1relative_coords[:, :, 1] self.window_size[1] - 1relative_coords[:, :, 0] * 2 * self.window_size[1] - 1relative_position_index relative_coords.sum(-1)self.register_buffer(relative_position_index, relative_position_index)self.qkv nn.Linear(dim, dim * 3, biasqkv_bias)self.attn_drop nn.Dropout(attn_drop)self.proj nn.Linear(dim, dim)self.proj_drop nn.Dropout(proj_drop)trunc_normal_(self.relative_position_bias_table, std.02)self.softmax nn.Softmax(dim-1)dim输入特征维度window_size窗口大小num_heads多头注意力头数head_dim每头注意力的头数scale 缩放因子relative_position_bias_table相对位置偏置表它对每个头存储不同窗口位置之间的偏置以模拟位置信息coords_h 、coords_w、coords窗口内每个位置的坐标coords_flatten 将坐标展平为计算相对位置做准备第1个relative_coords计算窗口内每个位置相对于其他位置的坐标差第2个relative_coords重排坐标差的维度以符合预期的格式relative_coords[:, :, 0]、relative_coords[:, :, 1]、relative_coords[:, :, 0]调整坐标差使其能够映射到相对位置偏置表中的索引relative_position_index 计算每对位置之间的相对位置索引register_buffer将相对位置索引注册为模型的缓冲区这样它就不会在训练过程中被更新qkv 创建一个线性层用于生成QKVattn_drop、proj、proj_drop初始化注意力dropout、输出投影层及其dropouttrunc_normal_使用截断正态分布初始化相对位置偏置表softmax 初始化softmax层用于计算注意力权重 6.2 前向传播 在Swin Transformer中一共有4个stage每次stage都分别包含W-MSA和SW-MSAW-MSA和SW-MSA都是在执行WindowAttention模块也就是说在一次batch的执行过程中WindowAttention的前向传播过程会执行8次。 每次stage执行后都会进行下采样操作这个下采样操作长宽会减半特征图会增多。 def forward(self, x, maskNone):B_, N, C x.shapeqkv self.qkv(x).reshape(B_, N, 3, self.num_heads, C // self.num_heads).permute(2, 0, 3, 1, 4)q, k, v qkv[0], qkv[1], qkv[2] # make torchscript happy (cannot use tensor as tuple)q q * self.scaleattn (q k.transpose(-2, -1))relative_position_bias self.relative_position_bias_table[self.relative_position_index.view(-1)].view(self.window_size[0] * self.window_size[1], self.window_size[0] * self.window_size[1], -1) relative_position_bias relative_position_bias.permute(2, 0, 1).contiguous()attn attn relative_position_bias.unsqueeze(0)if mask is not None:nW mask.shape[0]attn attn.view(B_ // nW, nW, self.num_heads, N, N) mask.unsqueeze(1).unsqueeze(0)attn attn.view(-1, self.num_heads, N, N)attn self.softmax(attn)else:attn self.softmax(attn)attn self.attn_drop(attn)x (attn v).transpose(1, 2).reshape(B_, N, C)x self.proj(x)x self.proj_drop(x)return xB_, N, C x.shape原始输入 torch.Size([256, 49, 96])B_, N, C即原始输入的维度qkv self.qkv(x).reshape...qkv: torch.Size([3, 256, 3, 49, 32])被重塑的一个五维张量分别代表qkv三个维度、256个窗口、3个注意力头数但是不会一直是3越往后会越多、49是一个窗口有7*749元素、每个头的特征维度。在之前的Transformer以及Vision Transformer中都是用x接上各自的全连接后分别生成QKV这这里直接一起生成了。q: torch.Size([256, 3, 49, 32])k: torch.Size([256, 3, 49, 32])v: torch.Size([256, 3, 49, 32])从qkv中分解出q、k、v而且已经包含了多头注意力机制attn torch.Size([256, 3, 49, 49])attn是q和k的点积relative_position_bias torch.Size([49, 49, 3])从相对位置偏置表中索引出每对位置之间的偏置并重塑以匹配注意力分数的形状relative_position_bias torch.Size([3, 49, 49])重新排列位置编码在Transformer中一直当成偏置加进去的而这个位置编码是对一个窗口的所以每一个窗口的都对应了相同的位置编码attn torch.Size([256, 3, 49, 49])将位置编码加到注意力分数上到这里就算完了全部的注意力机制了attn torch.Size([256, 3, 49, 49])掩码加到注意力分数上使用softmax函数归一化注意力分数得到注意力权重应用注意力dropout。x torch.Size([256, 49, 96])使用注意力权重对v向量进行重构然后对结果进行转置和重塑x torch.Size([256, 49, 96])将加权的注意力输出通过一个线性投影层应用输出dropout这就是最后WindowAttention的输出一共256个窗口每个窗口有49个特征每个特征对应96维的向量 SwinTransformer 算法原理 SwinTransformer 源码解读1项目配置/SwinTransformer类 SwinTransformer 源码解读2PatchEmbed类/BasicLayer类 SwinTransformer 源码解读3SwinTransformerBlock类 SwinTransformer 源码解读4WindowAttention类 SwinTransformer 源码解读5Mlp类/PatchMerging类
http://www.zqtcl.cn/news/883895/

相关文章:

  • 温州建网站哪家强网站建设谈客户说什么
  • 网站的子域名怎么设置整站seo排名外包
  • 免费网站在哪下载苏州建设银行网站
  • 邹平 建设项目 网站公示怎样做网站卖自己的产品教程
  • 手机免费网站建设哪家公司好免费动态域名申请
  • 提升网站排名怎么提交自己的网站
  • cms网站开发phpwordpress有什么功能
  • 专业网站制作解决方案自己在家搭建服务器
  • 中小企业网站提供了什么英文营销网站建设
  • 玉环市建设工程检测中心网站网站建设服务的具体条件
  • 主机网站wampserver搭建网站
  • 建设银行网站点不进去深圳龙华区招聘网最新招聘信息
  • 网站建设公司现在还挣钱吗wordpress棋牌
  • 网站建设有什么技术自媒体平台哪个好
  • 可以建网站的软件南昌seo代理商
  • 手机网站建设宽度中小型企业网站模板
  • 网站开发需要的所有技术中信建设有限责任公司历任董事长
  • 安徽省建设干部学校网站首页做软件是什么工作
  • 图书馆网站设计方案安徽质量工程建设网站
  • 电子商务网站建设效果那个网站可以做链接
  • 怎样做投资与理财网站网页设计优秀案例分析
  • 网站制作需要学什么搜狗网页版入口
  • html源码网seo搜索优化工程师招聘
  • 做的网站在小窗口中怎么保持中间广东省公共资源交易中心地址
  • 合肥做网站汇站网织梦网站广告代码教程
  • 复兴专业做网站wordpress搬家502
  • 代做毕网站淘宝权重查询
  • 有专做高端折扣女装的网站吗大连最好的做网站的公司
  • 网站需求嘉兴seo关键词优化
  • 自己开发微网站上海成品网站