Skip to content

yanhan19940405/Transformer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Self_Attention

##注意## 由于github某些组件最近被墙,导致图片无法正常加载,请按照如下方式处理:

1、更改hosts文件,添加如下信息,刷新网页即可解决此问题:

52.74.223.119 github.com
192.30.253.119 gist.github.com
54.169.195.247 api.github.com
185.199.111.153 assets-cdn.github.com
151.101.76.133 raw.githubusercontent.com
151.101.108.133 user-images.githubusercontent.com
151.101.76.133 gist.githubusercontent.com
151.101.76.133 cloud.githubusercontent.com
151.101.76.133 camo.githubusercontent.com
52.74.223.119 github.com
192.30.253.119 gist.github.com
54.169.195.247 api.github.com
185.199.111.153 assets-cdn.github.com
151.101.76.133 raw.githubusercontent.com
151.101.108.133 user-images.githubusercontent.com
151.101.76.133 gist.githubusercontent.com
151.101.76.133 cloud.githubusercontent.com
151.101.76.133 camo.githubusercontent.com

2、可以将源码图片文件夹中找到相应图片。

基于Keras的self-attention复现

其输入:上一层的输出张量。

输出:一个三维张量,维度为(samples,maxlen,attention),第一个维度含义代表句子数目,maxlen维度代表每一个句子长度,attention维度代表每个句子中每个分词构成的attention编码值个数。

运行截图如下(1000条情感分类数据应用下):

图1 code

图2 code

在8万条情感分析数据场景下,网络结构为cnn+ATT。学习率设置为0.001时,自身复现的att训练过程达成收敛,分类结果好于单独CNN网络,结果展示如下:

图4 code

训练收敛情况展示如下:

图5 code

Attention详细解读请参阅

Transformer模型复现(3层Transformer结构)

模型结构如下: 图3 Transformer

原理:1.分类场景下,通过Transformer Encoder作为动态词向量提取器+softmax作为文本分类baseline,进行微调即可。

 2.序列生成场景,将transformer Encoder作为序列隐藏状态层(state)生成器即可,decoder结构没有固定,可以随自身需求定义。

参数说明:在Transformer类中,creat_model方法为模型创建方法。其中maxlen0表示文本长度,wordindex代表词典索引数目,matrix代表词向量

注意:此处已经去掉常用数据预处理部分

About

Transformer模型复现

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages