最近在做基于attention的唇语识别,无奈网上关于tf中attention的具体实现没有较好的Demo,且版本大多不一致,琐碎而且凌乱,不得不自己翻开源码,阅读一番,收获颇丰,现分享与此。
PS:本文基于tensorflow-gpu-1.4.0版本,阅读前,读者最好对Attention mechanism有一定的了解,不然可能会一头雾水。
tf-1.4.0中,关于attention机制的代码位于tensorflow/contrib/seq2seq/python/ops/attention_wrapper.py文件中,使用时如下:
from tensorflow.contrib.seq2seq.python.ops import *
- 1
该py文件主要包含4大块:
-
Attention mechanism:用来实现计算不同类型的attention vector(即context加权和后的向量),包括:
- _BaseAttentionMechanism类:所有Attention的基类,
- BahdanauAttention:论文https://arxiv.org/abs/1409.0473中的实现:
ut=vTtanh(W1h+W2dt)at=softmax(ut)ct=∑lLatlhl
- BahdanauAttention:论文https://arxiv.org/abs/1409.0473中的实现:
- _BaseAttentionMechanism类:所有Attention的基类,
--------------------- 本文来自 NirHeavenX 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/qsczse943062710/article/details/79539005?utm_source=copy