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

什么网站免费制作上海网站设计网页设计

什么网站免费制作,上海网站设计网页设计,品牌建设不,wordpress积分充值插件引言 Transformer 架构自《Attention Is All You Need》论文发表以来#xff0c;在自然语言处理领域引起了巨大的变革。它摒弃了传统的循环结构#xff0c;完全基于注意力机制#xff0c;显著提高了处理序列数据的效率和性能。本文将通过对一个具体的项目代码结构进行详细分…引言 Transformer 架构自《Attention Is All You Need》论文发表以来在自然语言处理领域引起了巨大的变革。它摒弃了传统的循环结构完全基于注意力机制显著提高了处理序列数据的效率和性能。本文将通过对一个具体的项目代码结构进行详细分析带领大家深入了解 Transformer 模型的数据处理部分。 项目结构概述 首先让我们来看看项目的整体结构参考项目代码 transformer-master ├── paper\ │ └── attention is all you need.pdf ├── image\ ├── models\ │ ├── __init__.py │ ├── blocks\ │ │ ├── __init__.py │ │ ├── decoder_layer.py │ │ └── encoder_layer.py │ ├── embedding\ │ │ ├── __init__.py │ │ ├── positional_encoding.py │ │ ├── token_embeddings.py │ │ └── transformer_embedding.py │ ├── layers\ │ │ ├── __init__.py │ │ ├── layer_norm.py │ │ ├── multi_head_attention.py │ │ ├── position_wise_feedforward.py │ │ └── scaled_dot_product_attention.py │ └── model\ │ ├── __init__.py │ ├── encoder.py │ ├── decoder.py │ └── transformer.py ├── saved\ ├── util\ │ ├── __init__.py │ ├── bleu.py │ ├── data_loader.py │ ├── epoch_timer.py │ └── tokenizer.py ├── conf.py ├── data.py ├── graph.py ├── train.py └── README.md这个项目结构清晰包含了论文、模型模块、数据处理、训练脚本等部分。其中data.py 文件负责数据的处理和准备是模型训练的基础。 数据处理流程 数据处理流程图 #mermaid-svg-LSa9IUJkaE5fAgOS {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-LSa9IUJkaE5fAgOS .error-icon{fill:#552222;}#mermaid-svg-LSa9IUJkaE5fAgOS .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-LSa9IUJkaE5fAgOS .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-LSa9IUJkaE5fAgOS .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-LSa9IUJkaE5fAgOS .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-LSa9IUJkaE5fAgOS .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-LSa9IUJkaE5fAgOS .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-LSa9IUJkaE5fAgOS .marker{fill:#333333;stroke:#333333;}#mermaid-svg-LSa9IUJkaE5fAgOS .marker.cross{stroke:#333333;}#mermaid-svg-LSa9IUJkaE5fAgOS svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-LSa9IUJkaE5fAgOS .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-LSa9IUJkaE5fAgOS .cluster-label text{fill:#333;}#mermaid-svg-LSa9IUJkaE5fAgOS .cluster-label span{color:#333;}#mermaid-svg-LSa9IUJkaE5fAgOS .label text,#mermaid-svg-LSa9IUJkaE5fAgOS span{fill:#333;color:#333;}#mermaid-svg-LSa9IUJkaE5fAgOS .node rect,#mermaid-svg-LSa9IUJkaE5fAgOS .node circle,#mermaid-svg-LSa9IUJkaE5fAgOS .node ellipse,#mermaid-svg-LSa9IUJkaE5fAgOS .node polygon,#mermaid-svg-LSa9IUJkaE5fAgOS .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-LSa9IUJkaE5fAgOS .node .label{text-align:center;}#mermaid-svg-LSa9IUJkaE5fAgOS .node.clickable{cursor:pointer;}#mermaid-svg-LSa9IUJkaE5fAgOS .arrowheadPath{fill:#333333;}#mermaid-svg-LSa9IUJkaE5fAgOS .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-LSa9IUJkaE5fAgOS .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-LSa9IUJkaE5fAgOS .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-LSa9IUJkaE5fAgOS .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-LSa9IUJkaE5fAgOS .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-LSa9IUJkaE5fAgOS .cluster text{fill:#333;}#mermaid-svg-LSa9IUJkaE5fAgOS .cluster span{color:#333;}#mermaid-svg-LSa9IUJkaE5fAgOS div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-LSa9IUJkaE5fAgOS :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}#mermaid-svg-LSa9IUJkaE5fAgOS .green*{fill:#90EE90!important;stroke:#333!important;stroke-width:2px!important;}#mermaid-svg-LSa9IUJkaE5fAgOS .green span{fill:#90EE90!important;stroke:#333!important;stroke-width:2px!important;} Vocabulary and Indexes Data Preparation Initialization Get source pad index Get target pad index Get target sos index Get source vocab size Get target vocab size Make dataset Build vocabulary Create data iterators Import configurations Import DataLoader Import Tokenizer Create Tokenizer instance Create DataLoader instance 从流程图中可以看出数据处理主要分为三个阶段初始化、数据准备和获取词汇表及索引。 数据处理代码及解析 author : Hyunwoong when : 2019-10-29 homepage : https://github.com/gusdnd852from conf import * from util.data_loader import DataLoader from util.tokenizer import Tokenizertokenizer Tokenizer() loader DataLoader(ext(.en, .de),tokenize_entokenizer.tokenize_en,tokenize_detokenizer.tokenize_de,init_tokensos,eos_tokeneos)train, valid, test loader.make_dataset() loader.build_vocab(train_datatrain, min_freq2) train_iter, valid_iter, test_iter loader.make_iter(train, valid, test,batch_sizebatch_size,devicedevice)src_pad_idx loader.source.vocab.stoi[pad] trg_pad_idx loader.target.vocab.stoi[pad] trg_sos_idx loader.target.vocab.stoi[sos]enc_voc_size len(loader.source.vocab) dec_voc_size len(loader.target.vocab)1. 导入模块和配置 from conf import * from util.data_loader import DataLoader from util.tokenizer import Tokenizerfrom conf import *从 conf 模块导入所有内容通常包含全局配置如路径、参数等方便在整个项目中使用统一的配置。from util.data_loader import DataLoader导入 DataLoader 类它负责数据的加载和处理包括数据集的划分、迭代器的创建等。from util.tokenizer import Tokenizer导入 Tokenizer 类用于文本的分词和编码将文本转换为模型可以处理的形式。 2. 初始化分词器和数据加载器 tokenizer Tokenizer() loader DataLoader(ext(.en, .de),tokenize_entokenizer.tokenize_en,tokenize_detokenizer.tokenize_de,init_tokensos,eos_tokeneos)创建 Tokenizer 实例用于后续的分词操作。创建 DataLoader 实例指定 ext数据文件的扩展名这里指定为英语.en和德语.de表示处理的是英德双语数据。tokenize_en 和 tokenize_de分别指定英语和德语的分词函数这些函数来自 Tokenizer 实例确保不同语言的文本能正确分词。init_token 和 eos_token分别指定序列的开始和结束标记这里使用 sos 和 eos方便模型识别序列的边界。 3. 加载和划分数据集 train, valid, test loader.make_dataset()调用 DataLoader 实例的 make_dataset 方法加载数据并划分为训练集、验证集和测试集。训练集用于模型的训练验证集用于调整模型的超参数测试集用于评估模型的最终性能。 4. 构建词汇表 loader.build_vocab(train_datatrain, min_freq2)调用 DataLoader 实例的 build_vocab 方法基于训练数据构建词汇表。min_freq2 表示词汇表中只包含出现频率至少为 2 的单词这样可以过滤掉一些罕见的单词减少词汇表的大小提高模型的训练效率。 5. 创建数据迭代器 train_iter, valid_iter, test_iter loader.make_iter(train, valid, test,batch_sizebatch_size,devicedevice)调用 DataLoader 实例的 make_iter 方法为训练集、验证集和测试集创建数据迭代器。这些迭代器将数据分批加载到模型中batch_size 指定了每批数据的大小device 指定了数据加载到的设备如 CPU 或 GPU。分批处理数据可以减少内存的使用提高训练的效率。 6. 获取特殊标记的索引 src_pad_idx loader.source.vocab.stoi[pad] trg_pad_idx loader.target.vocab.stoi[pad] trg_sos_idx loader.target.vocab.stoi[sos]从源语言和目标语言的词汇表中获取 pad填充标记和 sos序列开始标记的索引。这些索引在后续的模型训练和推理中会被用到具体意义如下 pad 索引在处理不同长度的序列时为了能够将它们批量输入到神经网络中通常需要对序列进行填充或截断使其具有相同的长度。pad 标记用于填充较短的序列使其与最长序列的长度一致。在模型训练过程中通过识别 pad 标记的索引模型可以忽略这些填充部分的影响只关注实际有效的序列内容。sos 索引sos 标记用于标识序列的开始位置这对于生成式模型如文本生成、机器翻译中的解码器尤为重要。它告诉模型从哪里开始生成或解码序列。在解码过程中模型通常会从 sos 标记开始逐步生成后续的单词或字符直到遇到序列结束标记如 eos。 以下是一个简短的例程展示了如何在模型训练中使用这些特殊标记的索引 假设我们已经有一个训练好的seq2seq模型以及相应的数据加载器 #...模型和数据加载器的初始化代码省略...获取特殊标记的索引 src_pad_idx loader.source.vocab.stoi[pad] trg_pad_idx loader.target.vocab.stoi[pad] trg_sos_idx loader.target.vocab.stoi[sos]在训练循环中 for batch in train_iter:src_seq, trg_seq batch# 忽略填充部分的影响具体实现取决于模型#...处理src_seq和trg_seq可能包括掩码操作等...# 解码器从sos标记开始生成序列decoder_output model.decode(encoder_output, start_tokentrg_sos_idx)#...计算损失、更新模型参数等...7. 获取词汇表大小 enc_voc_size len(loader.source.vocab) dec_voc_size len(loader.target.vocab)获取源语言和目标语言词汇表的大小这些大小通常用于定义模型中的嵌入层大小。嵌入层将单词转换为向量表示词汇表的大小决定了嵌入层的输入维度。 Transformer模型数据处理的基本流程包括数据的加载、分词、划分、构建词汇表以及创建数据迭代器等操作。在实际应用中我们可以根据具体的任务和数据特点对这些步骤进行调整和优化。
http://www.dnsts.com.cn/news/38859.html

相关文章:

  • 公众号做漫画网站连云港网站seo
  • 河南做网站联系电话科技感网站设计
  • 影院网站建设做初级会计实务题的网站
  • 常州网站制作建设痘痘该怎么去除效果好
  • 会泽做网站公司网站被百度转码了
  • 淘宝领卷网站什么做成都网站建设培训哪家好
  • 网站上线确认书建设网站方案ppt
  • 1元涨1000粉丝网站住房和城乡建设部网站建筑合同
  • 自己做网站都要什么手续oa系统定制
  • 合川网站优化广州建设品牌网站
  • 上海网站制作怎么样卖普洱茶做网站
  • 珠海北京网站建设安装失败 无法创建目录wordpress
  • 用二级页面做网站的源代码半成品网站
  • 建设门户网站的可行性分析中英文网站源码php
  • 百度站长提交网站地图网站做谷歌推广有效果吗
  • 佛山网站建设找千界深圳网站建设企业
  • 做网站需要投资多少钱可以做盗版漫画网站吗
  • 深圳网站建设制作公司排名班级网站模板
  • linux网站架构网址大全2021
  • 杭州网站建设hzfwwl汉服销售网站建设
  • 做擦边网站低代码开发平台是什么
  • 农产品网站建设策划青岛网上房地产官网
  • 做非法网站怎么规避西昌城乡规划与建设局网站
  • 咸阳网站建设报价python php 网站开发
  • 一级a做爰片免费网站 新闻如何给一个企业的网站做推广
  • 做快餐料包的网站有哪些建设网站成本
  • 网站建设售后协议威海网站建设价格
  • 做网站商城需要什么条件保定网站制作企业
  • 什么免费网站可以链接域名哪里可以免费设计装修房子
  • 白云网站制作有哪些做室内设计好用的网站