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

类似于wordpress的seo引擎

类似于wordpress的,seo引擎,win主机怎样实现wordpress固定链接静态化,翻书效果网站#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 前向传播 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) # Wh*Ww,Wh*Ww,nHrelative_position_bias relative_position_bias.permute(2, 0, 1).contiguous() # nH, Wh*Ww, Wh*Wwattn 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函数归一化注意力分数得到注意力权重应用注意力dropoutx 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.hkea.cn/news/14421460/

相关文章:

  • 营销型网站建设托管成都网络优化公司有哪些
  • 成立网站要营业执照吗做搜狗网站优化点
  • 南通网站建设策划线上推广引流渠道
  • 2017网站开发薪资公关服务
  • 高端的网站设计公司网站怎么推广怎么做的
  • wordpress建站页面做网站需要什么技术人员
  • 温州建设网站公司哪家好ui设计网课一般多少钱
  • 白银市建设局网站首页网站模板上传打不开
  • 湖南雷锋建设有限公司网站磁力天堂
  • 网站备案知识网页设计师需要掌握的领域
  • 这么做钓鱼网站做一个网站能挣多少钱
  • 网站备案被拒市场价格查询
  • 网站建设的违约责任太平洋手机官方网站
  • 茶叶网站源码微商分销系统开发
  • 放图片网站产品外包装设计
  • php网站开发过程考试电子商务网站功能介绍
  • 织梦模板大气网站建设类网站模板网站右侧浮动导航
  • 集团网站建设思路国家企业信息公示系统官网官
  • 宁波企业网站搭建极速建站制作网站难不难
  • 个人网站设计企业服装定制尺寸量身表
  • 免费net网站空间wordpress导购插件
  • 餐饮培训网站建设素材网站视频
  • 视频图站主题 wordpress铜陵网络推广
  • 棋牌游戏网站建设费用惠州市建设局网站
  • 黄金网站大全免费2023网站可视化设计
  • 郑州网站推广地址广告设计自学网教程
  • 专业免费网站建设一般多少钱组织建设内容
  • 做网站页面的视频wordpress 点赞 用户
  • 学做网站快吗wordpress社交媒体插件
  • php网站培训做企业网站用服务器