问题标签 [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.

0 投票
1 回答
1315 浏览

nlp - 如何在 Keras 上的 seq2seq 模型中添加注意力层

根据这篇文章,我写了这个模型:

如何在解码器之前向该模型添加注意层?

0 投票
0 回答
2696 浏览

python - 使用 Attention-OCR 模型(tensorflow/research)从扫描文档中提取特定信息

关于本文中描述的 Attention-OCR 模型,我有几个问题:https ://arxiv.org/pdf/1704.03549.pdf

一些上下文

我的目标是让 Attention-OCR 了解在哪里查找和阅读扫描文档中的特定信息。它应该找到一个(在大多数情况下)前面带有描述性标签的 10 位数字。文档的布局和类型各不相同,因此我得出结论,如果不使用注意力机制,由于位置可变,任务是无法解决的......

我的第一个问题是:我是否正确地解释了模型的功能?它真的能解决我的问题吗?(1)

迄今为止的进展

我设法在我自己的数据集上运行了大约 200k 大小为 736x736 的图像的训练(相当大,虽然质量不是那么高,并且将其缩小会使文本无法识别)。不幸的是,我可以使用的机器只有一个 GPU(Nvidia Quadro M4000),时间是一个重要方面。我很快需要一个概念证明,所以我想我可以尝试用一个小得多的数据集来过度训练模型,看看它是否能够学习。

我设法用 5k 图像对其进行了过度训练——它成功地预测了每张图像。但我对我对这个结果的解释有些担忧。似乎模型没有成功记住在哪里寻找所需的信息,而只是记住了所有的字符串,而不管它们是否真的写在文档的某个地方。我的意思是,模型记住了这一切并不奇怪,但我的问题是模型必须超过什么图像数量阈值才能开始泛化并实际学习注意力?(2)

空间注意力

我想解决的另一件事是空间注意力机制。在实施模型的早期阶段,我假设论文中描述的空间注意力机制已经包含在内并且正在工作。前段时间,我在 Alexander Gorban(Attention-OCR 的开发者之一)创建的 tensorflow-repository 中偶然发现了一个问题,他说默认情况下它是禁用的。

所以我重新打开它并意识到内存使用量变得难以置信的高。张量的空间维度,包括编码坐标,从

[batch_size、宽度、高度、特征]

[batch_siz,宽度,高度,特征+宽度+高度]

这导致内存消耗增加了约 10 倍(考虑到图像的大小)-> 负担不起!导致我的第三个问题:我的任务需要空间注意力机制吗?(3)

奖金问题

是否可以在禁用坐标编码的情况下可视化静音和注意力图?

0 投票
0 回答
502 浏览

tensorflow - 具有较小字符集的注意力 OCR (FSNS)

我们正在尝试使用 38 个字符的较小字符集(文件)来训练注意力 OCR(FSNS) 。我们有自己的图像数据集,其性质与 FSNS 数据集相似。现在我们面临的问题是,即使经过四天的训练,损失也在不断增加,达到数千。但是如果我们使用默认的 charset 文件charset_size\=134.txt,损失不会增加,我们得到字符准确度 ~= .80 和单词准确度 ~= .50。但是当我们使用 demo_inference.py 进行评估时,我们的模型会给出垃圾输出。我们没有使用 gpu。尝试了 TensorFlow 版本(1.2,1.3)。

有人可以帮助我们吗?

0 投票
1 回答
276 浏览

tensorflow - Tensorflow 顺序矩阵乘法

我有以下形状的两个张量:

我想要做的是为每个[100] dimensional向量tensor2获得与相应[max_time, 100] dimensional矩阵的矩阵乘法tensor1以获得维向量batch_size的数量;max_time这与[batch_size, max_time] dimensional矩阵相同。

对于那些知道的人:我基本上是在尝试在 seq2seq 模型的编码器给出的编码输入上实现基于内容的注意力。所有的[max_time]维度向量只是我后来softmax的注意力值。

我知道 tensorflowAttentionWrapper在包中提供了各种帮助contrib程序。但是,我希望这样做,因为我正在尝试使用注意力机制来获得混合注意力掩码。

我已经尝试过了,tf.while_loop但是卡在了?展开循环的形状中。矢量化实现对我来说似乎也不是很直接。请帮忙。

0 投票
1 回答
1369 浏览

python - 如何使用在 LSTM 上应用的注意力包装器的输出作为 TimeDistributed 层 Keras 的输入?

我一直在尝试在本机器学习掌握教程中显示的 LSTM 模型的输出上实现注意力包装

(samples, steps, features)LSTM的输出return_sequences = true由注意力包装器(输出形状(样本、特征))接收。这是我修改后的代码:

我一直在使用此处描述的注意包装器:

但是,我得到的错误是:

ValueError:输入 0 与层 time_distributed_1 不兼容:预期 ndim=3,发现 ndim=2

有没有办法重新调整注意力包装器输出的形状以使用 TimeDistributed 层?

0 投票
0 回答
2112 浏览

python - Tensorflow:注意力热图可视化

我正在尝试使用注意创建一个与下图相同的热图TensorFlow r1.4

注意热图

我正在使用tf.contrib.seq2seq.BahdanauAttentiontf.contrib.seq2seq.AttentionWrapper来实现注意力机制。我在这里看到了一种解决方法(在 Tensorflow 中可视化注意力激活),但我认为它不适用于我当前的设置,因为该解决方法使用的是旧版本的TensorFlow.

编辑

通过使用tfdbg调试模型,我可能接近找到解决方案,但我不知道应该寻找什么张量。

任何帮助将不胜感激。

0 投票
0 回答
396 浏览

keras - 拼写校正模型中的注意力机制

我正在尝试在这段代码中测试注意力机制(基于 MajorTal 的工作):

有人可以告诉我如何用注意力机制替换这个实现的解码器吗?提前致谢。

0 投票
1 回答
748 浏览

machine-learning - Attention Mechanism 中的“源隐藏状态”指的是什么?

注意力权重计算为:

在此处输入图像描述

我想知道h_s指的是什么。

在 tensorflow 代码中,编码器 RNN 返回一个元组:

正如我所想,h_s应该是encoder_state,但是github/nmt给出了不同的答案?

我误解了代码吗?或者h_s实际上意味着encoder_outputs?

0 投票
1 回答
95 浏览

word2vec - Word2Vec 不包含数字 23 的嵌入

嗨,我正在开发带有 Attention 的编码器-解码器模型,该模型预测给定事实关系的 WTO 小组报告,作为 Text_Inputs。

事实关系的 Sample_sentence 如下:

要求争端解决机构(“DSB”)成立一个小组,根据总协定第 XXIII:2 条和 DSU 第 6 条(WT/DS2/2)审查该事项。1995 年 4 月 10 日,DSB 根据委内瑞拉的要求成立了专家组。1995 年 4 月 28 日,争端各方同意专家组应有标准职权范围(DSU,第 7 条),并同意专家组的组成如下"

我正在尝试使用来自 google 的 Word2Vec 并将每个单词编码为 300dim 单词向量,但是,就像数字 23 出现在 Word2Vec VocaSets 中一样。

在此处输入图像描述

哪个是这个问题的解决方案?

1) 使用另一个词嵌入,例如 Glovec?

2)或其他任何其他建议?

提前谢谢您的帮助

  • 编辑)

我认为要成功完成这项任务,我认为首先我必须了解当前的 NMT 应用程序在实际训练之前如何处理命名实体识别问题。

有什么暗示性的文献吗?

0 投票
1 回答
1008 浏览

tensorflow - 如何将 LSTM 的先前输出和隐藏状态用于注意力机制?

我目前正在尝试对这篇论文中的注意力机制进行编码:“基于注意力的神经机器翻译的有效方法”,Luong, Pham, Manning (2015)。(我将全局注意力与点分数一起使用)。

但是,我不确定如何从 lstm 解码中输入隐藏和输出状态。问题是 lstm 解码器在时间 t 的输入取决于我需要使用来自 t-1 的输出和隐藏状态来计算的数量。

这是代码的相关部分:

循环内的部分是我不确定的。当我覆盖变量“initial_input”和“last_encoder_state”时,tensorflow 会记住计算图吗?