问题标签 [attention-model]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
pytorch - 在 PyTorch 中实现 Luong Attention
我正在尝试实现Luong 等人中描述的注意力。2015年我自己在 PyTorch 中,但我无法让它工作。下面是我的代码,我现在只对“一般”注意案例感兴趣。我想知道我是否遗漏了任何明显的错误。它运行,但似乎没有学习。
我研究了在
https://pytorch.org/tutorials/intermediate/seq2seq_translation_tutorial.html
和
https://github.com/spro/practical-pytorch/blob/master/seq2seq-translation/seq2seq-translation.ipynb
- 第一个不是我正在寻找的确切注意力机制。一个主要的缺点是它的注意力取决于序列长度(
self.attn = nn.Linear(self.hidden_size * 2, self.max_length)
),这对于长序列来说可能是昂贵的。 - 第二个与论文中描述的更相似,但与没有
tanh
. 此外,将其更新到最新版本的 pytorch ( ref )后确实很慢。另外我不知道为什么它需要最后一个上下文(ref)。
tensorflow - Keras 中的自注意力 GAN
我目前正在考虑在 keras 中实现 Self-Attention GAN。我想实现的方式如下:
但我不知道如何添加一个可训练的标量伽马,如本文所述:SAGAN
我也希望有人能提供一些关于如何初始化可训练 keras 标量的想法。
编辑:
我现在的实现是:
python - 如何在分层模型中获得注意力权重
模型 :
使用的注意力层: https : //gist.github.com/cbaziotis/6428df359af27d58078ca5ed9792bd6d with return_attention=True
训练模型后,如何可视化新输入的注意力权重。
我正在尝试什么:
并传递一个新的输入,但它给了我错误。
可能的原因:model.layers() 只给了我最后一层。我想从 Timedistributed 部分获得权重。
deep-learning - 连接来自不同来源的编码器隐藏状态/单元/输出以进行注意力计算 - 问题?
我正在使用 Pytorch 解决 LSTM 编码器-解码器序列到序列预测问题。作为第一步,我想从多元输入预测二维轨迹(轨迹 x,轨迹 y) - 二维或更多(轨迹 x、轨迹 y、速度、旋转等)
我正在关注以下笔记本(链接):
这里摘录(编码器,解码器,注意):
为了在解码器阶段计算注意力,编码器隐藏状态和编码器输出被输入并使用如下:
我的实际目标是通过添加要馈送到解码器的更多信息来扩展该方法,例如每个输入时间步的图像数据。从技术上讲,我想使用两个(或更多)编码器,一个用于上面链接中的轨迹,另一个用于图像数据(卷积编码器)。
我通过连接由轨迹编码器和卷积编码器(以及单元状态等)产生的嵌入并将连接的张量馈送到解码器来做到这一点。
例如,图像嵌入(256 长度的张量)与轨迹数据嵌入(256 长度的张量)相连接会产生 512 长度的嵌入。
我的问题是:如果我使用来自这些不同来源的级联编码器隐藏状态、级联编码器单元状态和级联编码器输出,而不是来自单个源的隐藏状态、单元格、输出,那么注意力计算是否会出现问题?
使这项工作发生的注意事项或预处理是什么?
非常感谢您提前。
tensorflow - 从头开始对视频序列进行软注意
我正在尝试对视频序列分类实施软注意。由于有很多关于 NLP 的实现和示例,所以我尝试遵循这个模式,但对于 video 1。基本上是一个中间有注意力模型的 LSTM。
1 https://blog.heuritech.com/2016/01/20/attention-mechanism/
我的注意力层代码如下,我不确定它是否正确实现。
因此,在我的 LSTM 之间(或在我的 2 个 LSTM 开始时)添加这一层会使训练变得如此缓慢。更具体地说,声明优化器需要很长时间:
我的问题是:
- 实施是否正确?如果是,有没有办法对其进行优化以使其正确训练?
- 我无法使其与 seq2seq API 一起工作。是否有任何带有 Tensorflow 的 API 可以让我解决这个特定问题?
- 将它用于序列分类真的有意义吗?
keras - 如何在具有不同时间步长的编码器和解码器的 keras 中为 Seq2Seq 添加自定义注意层
我正在尝试在 keras 的 seq2seq 中实现注意力层。我正在使用此代码来实现:https ://github.com/datalogue/keras-attention/blob/master/models/custom_recurrents.py ,但似乎它假设编码器和解码器具有相同的时间步,但在我的实现中,我要求它们不同。谁能指导我如何做到这一点。
谢谢
tensorflow - AttributeError:“张量”对象在注意力模型中没有“分配”属性
我尝试使用 keras 建立一个带有注意力的文档分类模型(论文 Hierarchical Attention Networks for Document Classifications 中模型的一部分)。以下代码是测试代码。我创建了一个 birnn 和一个自定义注意力层,参考https://github.com/person-lee/LSTM_ATTENTION_CLASSIFY/blob/master/utils.py和https://github.com/richliao/textClassifier/blob/master/textClassifierHATT .py。但是我收到了一个错误(请参阅下面的详细信息)。
代码是:
并得到以下错误:
我不知道出了什么问题。我用谷歌搜索并询问了擅长这方面的人,但没有弄清楚。bidirectional
是不是因为 有人知道出了什么问题吗?
python - 我怎么能在 keras 中用批量交换 dims?
我想在 CNN 中使用注意力。注意是 (N,1) 而 N 是批量大小。我想将其更改为 (1,N) 然后使用 softmax。Pytorch 可以使用“转置”来做到这一点。但是当我在 keras 中使用“Permute”时,会出现错误:
我的代码在这里: