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

电子商务网站建设报价表购物网站大全分类

电子商务网站建设报价表,购物网站大全分类,重庆网站建设seo公司,做网站是什么专业什么工作文章目录 前言1. 位置编码(Positional Encoding)2. 多头注意力机制(Multi-Head Attention)3. 前馈网络与残差连接(Position-Wise FFN & AddNorm)3.1 基于位置的前馈网络(PositionWiseFFN)3.2 残差连接和层规范化(AddNorm)4. 编码器(Encoder)4.1 编码器块(Enco…

文章目录

  • 前言
  • 1. 位置编码(Positional Encoding)
  • 2. 多头注意力机制(Multi-Head Attention)
  • 3. 前馈网络与残差连接(Position-Wise FFN & AddNorm)
    • 3.1 基于位置的前馈网络(PositionWiseFFN)
    • 3.2 残差连接和层规范化(AddNorm)
  • 4. 编码器(Encoder)
    • 4.1 编码器块(EncoderBlock)
    • 4.2 Transformer 编码器(TransformerEncoder)
  • 5. 解码器(Decoder)
    • 5.1 解码器块(DecoderBlock)
    • 5.2 Transformer 解码器(TransformerDecoder)
  • 6. 完整 Transformer 模型
    • 使用示例
  • 总结


前言

Transformer 模型自 2017 年在论文《Attention is All You Need》中提出以来,彻底改变了自然语言处理(NLP)领域,并在计算机视觉等其他领域展现了强大的潜力。与传统的 RNN 和 LSTM 相比,Transformer 通过自注意力机制(Self-Attention)实现了并行计算,极大地提高了训练效率和模型性能。本博客将通过 PyTorch 实现的 Transformer 模型代码,深入剖析其核心组件,包括多头注意力机制、位置编码、编码器和解码器等。我们将结合代码和文字说明,逐步拆解 Transformer 的实现逻辑,帮助读者从代码层面理解这一经典模型的精髓。
在这里插入图片描述

本文基于提供的代码文件(PE.pyEnDecoder.pyMHA.pyTransformer.ipynb),完整呈现 Transformer 的 PyTorch 实现,并通过清晰的目录结构和代码注释,带领大家从零开始学习 Transformer 的构建过程。关于训练和可视化部分,这里忽略掉,但是你仍然可以在下面的链接里找到所有的源代码,其中提供了丰富的注释。无论你是深度学习初学者还是希望深入理解 Transformer 的开发者,这篇博客都将为你提供一个清晰的学习路径。

完整代码:下载链接


1. 位置编码(Positional Encoding)

Transformer 的自注意力机制不包含序列的位置信息,因此需要通过位置编码(Positional Encoding)为每个词元添加位置信息。以下是 PE.py 中实现的位置编码类,它通过正弦和余弦函数生成固定位置编码。

import torch
import torch.nn as nnclass PositionalEncoding(nn.Module):"""位置编码在Transformer中,由于自注意力机制不含位置信息,需要额外添加位置编码在位置嵌入矩阵P中,行代表词元在序列中的位置,列代表位置编码的不同维度"""def __init__(self, num_hiddens, dropout, max_len=1000):"""初始化位置编码参数:num_hiddens (int): 隐藏层维度,即位置编码的维度dropout (float): dropout概率max_len (int, 可选): 最大序列长度,默认为1000"""super(PositionalEncoding, self).__init__()# 初始化丢弃层self.dropout = nn.Dropout(dropout)# 创建位置编码矩阵P,形状为(1, max_len, num_hiddens)self.P = torch.zeros((1, max_len, num_hiddens))# 计算位置编码的正弦和余弦函数输入# X形状: (max_len, num_hiddens/2)X = torch.arange(max_len, dtype=torch.float32).reshape(-1, 1) / torch.pow(10000, torch.arange(0, num_hiddens, 2, dtype=torch.float32) / num_hiddens)# 偶数维度赋值正弦,奇数维度赋值余弦self.P[:, :, 0::2] = torch.sin(X)self.P[:, :, 1::2] = torch.cos(X)def forward(self, X):"""前向传播参数:X (torch.Tensor): 输入张量,形状为(batch_size, seq_len, embed_dim)返回:torch.Tensor: 添加位置编码后的张量,形状为(batch_size, seq_len, embed_dim)"""# 将位置编码加到输入X上,截取与X长度匹配的部分X = X + self.P[:, :X.shape[1], :].to(X.device)# 应用丢弃并返回结果return self.dropout(X)

代码解析

  • 初始化PositionalEncoding 类根据隐藏层维度(num_hiddens)和最大序列长度(max_len)生成一个位置编码矩阵 P。该矩阵的每一行表示一个位置,每一列对应一个编码维度。
  • 正弦和余弦编码:通过正弦(sin)和余弦(cos)函数为不同位置和维度生成编码值,公式为:
    P E ( p o s , 2 i ) = sin ⁡ ( p o s 1000 0 2 i / d ) , P E ( p o s , 2 i + 1 ) = cos ⁡ ( p o s 1000 0 2 i / d ) PE(pos, 2i) = \sin\left(\frac{pos}{10000^{2i/d}}\right), \quad PE(pos, 2i+1) = \cos\left(\frac{pos}{10000^{2i/d}}\right) PE(pos,2i)=sin(100002i/dpos),PE(pos,2i+1)=cos(100002i/dpos)
    其中 pos 是位置索引,i 是维度索引,d 是隐藏层维度。
  • 前向传播:将输入张量 X 与位置编码矩阵 P 相加,并应用 dropout 以增强模型的鲁棒性。

位置编码的作用是将序列的位置信息嵌入到词嵌入中,使得 Transformer 能够区分相同词元在不同位置的语义。

2. 多头注意力机制(Multi-Head Attention)

多头注意力机制是 Transformer 的核心组件,允许模型并行计算多个注意力头,从而捕获序列中不同方面的依赖关系。以下是 MHA.py 中实现的多头注意力机制。

import math
import torch
from torch import nn
import torch.nn.functional as Fdef sequence_mask(X, valid_len, value=0):"""在序列中屏蔽不相关的项,使超出有效长度的位置被设置为指定值"""maxlen = X.size(1)mask = torch.arange(maxlen, dtype=torch
http://www.dtcms.com/a/437674.html

相关文章:

  • 菏泽哪里做网站做普工招聘网站
  • 网站怎么做虚拟连接做网站的工作好吗
  • 深圳做网站的公司哪家好阿里云网站开发
  • 服务器除了做网站还能做什么wordpress自适应插件
  • 常德建设网站制作宁波做百度网站
  • 众车网是哪家公司网站开发一个企业网站需要多少钱
  • 做外贸怎么网站找客户信息温州网站建设免费咨询
  • 网站建设开发协议书搭建一个app平台需要多少钱
  • 台州做网站是什么网站相关推荐怎么做
  • 线上平台运营方案昆明seo网站排名优化
  • 建立平台网站要多久app界面设计包括哪几部分
  • 网站建设用的软件番禺人才网站
  • 充电宝网站建设策划书网站新闻前置备案
  • 咸阳网站建设专业公司哪家好济南seo优化外包服务
  • 昌江县住房和城乡建设局网站能通过淘宝网站做淘宝客吗
  • 建网站需要的费用四川建设机械网站
  • 网站搭建系统都有哪些做网站费用会计分录
  • 专业的网站建设制作服务中企做的网站太原
  • 可以转app的网站怎么做化妆品网站建设
  • wordpress整站下载wordpress仿知乎社区
  • 网站图片翻页效果如何做seo干什么
  • 把网站放在虚拟主机上 怎么进入网站后台soapclient WordPress
  • 衡阳网站建设ss0734阿里云建设网站流程
  • vmware做网站步骤宝塔面板加wordpress
  • 怎么提升搜狗网站排名电子商务网站建设 以为例
  • 湖南省水运建设投资集团网站义乌公司网站制作
  • collectfrom企业网站模版上海做seo的公司
  • 哪个网站做律师推广只做英文网站 域名有什么要求
  • 做个产品网站要多少钱最简洁的wordpress主题
  • 建网站专用网站武强网站建设