问题标签 [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 回答
483 浏览

python - 分层注意网络 - model.fit 生成错误“ValueError:输入维度不匹配”

作为背景,我指的是用于情感分类的层次注意网络。

对于代码:我的完整代码发布在下面,但这只是作者在上面的链接上发布的原始代码的简单修改。我在下面解释我的变化。 对于训练数据这里 对于词嵌入:这是 Glove 嵌入这里 关键配置:Keras 2.0.9、Scikit-Learn 0.19.1、Theano 0.9.0

上面链接中发布的原始代码采用 3D 形状输入,即(评论、句子、单词)。注意力机制适用于句子,也适用于单词。所以它有两个注意力组件,你可以在网页的第四个代码块中看到。

我想把它改成只需要一个2D 形状输入的。我这样做是通过

  1. 更改输入形状和输入嵌入矩阵(请参阅下面我的代码中的内联注释)
  2. 通过删除句子注意组件来更改模型构建部分,仅保留单词注意组件(请参阅下面我的代码中的内联注释)

但是,当调用“model.fit”时,代码会产生错误。我在下面发布了完整的代码和错误。

代码

ERROR:代码的最后一行生成以下错误跟踪:

我真的很感激对此的一些建议,非常感谢提前!

0 投票
1 回答
2225 浏览

python - 无法在 OpenCV-DNN TensorFlow 中解析函数“ReadTFNetParamsFromTextFileOrDie”中的 GraphDef 文件

我想用 OpenCV-DNN 包装注意力 OCR模型以增加推理时间。我正在使用官方 TF 模型repo中的 TF 代码。

对于使用 OpenCV-DNN 包装 TF 模型,我指的是此代码。需要“cv2.dnn.readNetFromTensorflow()冻结图”和“图结构”来读取 TF 模型。

我使用此代码片段从元检查点文件导入结构并将图形结构保存在.pbtxt文件中。

冻结图,代码如下:

最终代码使用函数中的pbtxtpb文件cv2.dnn.readNetFromTensorflow()

遇到的错误是:

注意:输出节点名称是通过查看生成的图中的张量列表手动设置的:

我将非常感谢 SO 社区提供的任何帮助。

0 投票
1 回答
261 浏览

nlp - 为什么在 first attention 论文中没有使用词嵌入(Glove、word2vecetc)?

联合学习对齐和翻译 Bahdanau 等人的神经机器翻译论文中。人。为什么没有使用 Glove 或 word2vec 等词嵌入?

我知道这是 2014 年的一篇论文,但是 github 上论文的当前实现也不使用任何词嵌入?

为了尝试对论文进行编码,使用词嵌入是否合理?

0 投票
0 回答
267 浏览

keras - Keras RNN + Encoder/Decoder + Attention 中的图断开连接

我已经使用编码器/解码器结构 + 注意力 + 手套在 Keras 中成功训练了一个模型,下面有几个例子,最值得注意的是这个这个。它基于对机器翻译的修改。这是一个聊天机器人,所以输入是单词,输出也是。但是,我一直在努力正确设置推理(预测),并且无法弄清楚如何通过图形断开连接。我的带有嵌入和注意力的双向 RNN 编码器/解码器训练良好。我试过修改解码器,但觉得有一些明显的东西我没有看到。

这是基本模型:

它看起来像这样: 在此处输入图像描述

这是我遇到麻烦的地方:

这会产生图形断开错误:图形断开连接:无法在“encoder_inputs”层获得张量 Tensor("encoder_inputs_61:0", shape=(?, 1037), dtype=float32) 的值。访问以下先前层没有问题:[]

应该可以进行这样的推理但我无法克服这个错误。我不可能简单地将decoder_output 和attention 加在一起,因为它们的形状不同。

0 投票
0 回答
286 浏览

python - 在 Keras 中实现一个简单的注意力机制

我想实现一个简单的注意力机制来集成 CNN 模型的结果。

具体来说,我输入的每个示例都是图像序列,因此每个示例都有 shape [None, img_width, img_height, n_channels]

使用TimeDistributed包装器,我可以应用我的 CNN 以获得 shape 的输出[None, hidden_state_size]

我想将 CNN 应用于序列中的每个图像,然后计算 shape 的注意力向量[None]。为了做到这一点,我通过具有单个输出单元的 TimeDistributed Dense 网络运行 TimeDistributed CNN 的输出,并计算序列上的 softmax。

然后应该将注意力向量乘以 TimeDistributed CNN 的输出,并将所有内容相加,以便我们最终得到一个 shape 的张量[hidden_state_size]

结果代码是这样的:

这个模型的尺寸似乎检查出来了,但这会做我想要的吗?还是我在某个地方犯了错误?

0 投票
1 回答
543 浏览

tensorflow - Keras重复元素将ValueError List参数'indices'抛出到'SparseConcat'Op,长度0小于最小长度2

I am trying to implement the code for Unsupervised Aspect Extraction from the code available here. Link to the paper
While implementing Attention class in ml_layers.py, i am getting error in call function at line

Complete code of the function is given below:

The error is as follows Traceback (most recent call last):

File "", line 1, in model = create_model(ortho_reg, neg_size, emb_dim, aspect_size, emb_path, maxlen, vocab)

File "/home/fractaluser/Projects/workspace/UnsupervisedAspectExtraction/code/model.py", line 32, in create_model att_weights = Attention(name='att_weights')([e_w, y_s])

文件“/home/fractaluser/anaconda3/envs/venv_keras/lib/python3.5/site-packages/keras/engine/base_layer.py”,第 457 行,调用 output = self.call(inputs, **kwargs)

文件“/home/fractaluser/Projects/workspace/UnsupervisedAspectExtraction/code/my_layers.py”,第 58 行,调用 y = K.repeat_elements(y, self.steps, axis=1)

文件“/home/fractaluser/anaconda3/envs/venv_keras/lib/python3.5/site-packages/keras/backend/tensorflow_backend.py”,第 2093 行,repeat_elements 返回连接(x_rep,轴)

文件“/home/fractaluser/anaconda3/envs/venv_keras/lib/python3.5/site-packages/keras/backend/tensorflow_backend.py”,第 1954 行,串联返回 tf.sparse_concat(axis, tensors)

文件“/home/fractaluser/.local/lib/python3.5/site-packages/tensorflow/python/util/deprecation.py”,第 488 行,在 new_func 返回 func(*args, **kwargs)

文件“/home/fractaluser/.local/lib/python3.5/site-packages/tensorflow/python/ops/sparse_ops.py”,第 316 行,在 sparse_concat gen_sparse_ops.sparse_concat(inds,vals,shapes,axis,name=姓名))

文件“/home/fractaluser/.local/lib/python3.5/site-packages/tensorflow/python/ops/gen_sparse_ops.py”,第 911 行,在 sparse_concat concat_dim=concat_dim, name=name)

_apply_op_helper 中的文件“/home/fractaluser/.local/lib/python3.5/site-packages/tensorflow/python/framework/op_def_library.py”,第 570 行(input_name,op_type_name,len(values),num_attr.minimum) )

ValueError:将参数 'indices' 列出到 'SparseConcat' Op,长度 0 比最小长度 2 短。

在互联网上找不到任何解决方案。请帮忙

0 投票
2 回答
206 浏览

python - 层次注意网络中的输入层代表什么

我试图掌握分层注意力网络(HAN)的概念,我在网上找到的大部分代码都或多或少类似于这里的代码:https ://medium.com/jatana/report-on-text-分类-使用-cnn-rnn-han-f0e887214d5f

我的问题是:这里的输入层代表什么?我猜 input1 代表用嵌入层包裹的句子,但在这种情况下 input2 是什么?是 sendEncoder 的输出吗?在这种情况下,它应该是一个浮点数,或者如果它是另一层嵌入的单词,那么它也应该用嵌入层包裹。

0 投票
1 回答
82 浏览

tensorflow - 模型尺寸太大,我的注意力模型实现?

我正在实施 Minh-Thang Luong 的注意力模型来构建一个英文到中文的翻译器。我训练的模型大小异常大(980 MB)。Minh-Thang Luong 的原始论文
模型结构

这是模型参数

这是我在 tensorflow 中的模型实现。

这是到目前为止我能想到的模型参数大小的缩减

将它们相加得到 212 MB,但实际模型大小为 980 MB。那么哪里错了?

0 投票
1 回答
913 浏览

python - Keras 中的注意力:如何在 keras 密集层中添加不同的注意力机制?

我是 Keras 的新手,我正在尝试在带有注意力层的 keras 中构建一个简单的自动编码器:

这是我尝试过的:

它看起来像这样:

在这个模型中我可以在哪里添加注意力层?我应该在第一个编码输出之后和第二个编码输入之前添加吗?

我也在通过这个美丽的库:

https://github.com/Cyber​​ZHG/keras-self-attention

他们已经实现了各种类型的注意力机制,但它是针对顺序模型的。我如何在我的模型中添加这些注意力?

我尝试了非常简单的注意:

它在正确的位置吗?我可以在这个模型中添加任何其他注意机制吗?

0 投票
1 回答
961 浏览

keras - LSTM 自动编码器顶部的注意力层出现不兼容错误

我正在部署一个Bidirectional LSTM Autoencoder,并在attention layer此基础上添加。

在添加注意力层之前,它工作正常。我从这篇文章中得到了添加注意力层的想法。添加注意力后,它抱怨尺寸不兼容。

这是我添加注意后的代码:

这是我得到的错误:

我已阅读有关此错误的几篇文章,即:thisthisthis。但它们与我的错误不同。另外,有些人建议让return_sequences = False,但我认为这不是正确的方法。稍后在代码中,如果我们将其设置为 False,它会再次引发错误!

所以,我觉得我做错了什么,否则,为什么网络应该用标准架构引发错误。

所以我的问题是:这个网络出了什么问题,我该如何修复它。

如果您能详细解释一下,我将不胜感激,这样我就可以更好地掌握或给我一些链接来讨论我的代码中的冲突。

提前致谢!