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

python - 如何在基于注意力的模型中为配置设置参数?

配置中有一些参数,特别是当我更改max_len,hidden_sizeembedding_size.

我收到一个错误:

“ValueError:无法为张量'Placeholder:0'提供形状(32、32)的值,其形状为'(?,64)'”

下面的张量流图是我理解有问题的。有没有办法了解需要设置哪些 relative 或参数来避免我上面遇到的max_len错误hidden_sizeembedding_size

0 投票
1 回答
474 浏览

tensorflow - 注意力层输出形状问题

我一直在使用 BiLSTM 对句子中的每个单词进行分类,我的输入是 n_sentences、max_sequence_length、classes。最近一直在尝试使用这个注意力层:https ://www.kaggle.com/takuok/bidirectional-lstm-and-attention-lb-0-043

我的输出需要是(样本、步骤、功能),否则我得到这个

所以我换了:

这样做我得到另一个错误:

我需要修改什么才能在我的句子上实际使用注意力层?

0 投票
1 回答
895 浏览

python - Pytorch (1.0) 中类似外观操作的不同 `grad_fn`

我正在研究一个注意力模型,在运行最终模型之前,我正在研究流经代码的张量形状。我有一个需要重塑张量的操作。张量的形状torch.Size([[30, 8, 9, 64]])30,是注意力头batch_size8数量(这与我的问题无关)9是句子中的单词数,并且64是单词的一些中间嵌入表示。torch.size([30, 9, 512])在进一步处理之前,我必须将张量重塑为 的大小。所以我在网上寻找一些参考资料,他们做了以下事情,x.transpose(1, 2).contiguous().view(30, -1, 512) 而我认为这应该可行x.transpose(1, 2).reshape(30, -1, 512)

在第一种情况下grad_fn<ViewBackward>,而在我的情况下是<UnsafeViewBackward>。这两个不是同一个操作吗?这会导致训练错误吗?

0 投票
1 回答
1373 浏览

machine-translation - Luong 注意和 Bahdanau。我们什么时候应该使用 Luong 或 Bahdanau?

我对机器学习概念很陌生,尤其是机器翻译。我读过关于 Luong's Attention 和 Bahdanau's Attention 的文章。据说 Luong 是“乘法”,而 Bahdanau 是“加法”。但我仍然不知道哪个更好,什么时候应该使用 Luong 或 Bahdanau

良

0 投票
1 回答
1640 浏览

pytorch - 在 pytorch 中保存模型时,某些参数未保存

我已经建立了一个编码器-解码器模型,并关注变形拐点的生成。我能够训练模型并根据测试数据进行预测,但是在加载保存的模型后预测错误我在保存或加载期间没有收到任何错误,但是当我加载保存的模型时,它的预测完全错误。看起来有些参数没有被保存。

我尝试使用这两种技术加载和保存模型

  1. 使用 state_dict() 例如。torch.save(编码器.state_dict(),'路径')

  2. 保存完整模型 eg.torch.save(encoder,'path')

我试图一个一个地保存不同的类,并创建一个启动所有这些类的超类,然后只保存超类

但似乎没有任何效果

编码器类

注意课

解码器类

seq2seq 类

此代码用于保存和加载模型

我希望当我在预训练的权重上运行我的模型时,它应该根据这些权重正确预测

0 投票
0 回答
60 浏览

tensorflow - 可变输入序列长度中填充标记的注意力分数

当使用 RNN(LSTM/GRU)时,我们传递输入序列长度来限制序列的展开。因此,例如,如果实际序列长度为 8 并用 2 个额外标记填充,则将第 8 个标记的隐藏状态复制到第 9 个和第 10 个标记。

如何在填充序列长度上计算注意力分数?第 8 个、第 9 个和第 10 个代币的贡献不相等吗?

0 投票
2 回答
646 浏览

tensorflow - 如何用我自己的图像构成 FSNS 数据集以用于注意力 OCR tensorflow 模型

我想应用 attention-ocr 来检测汽车号码板上的所有数字。我已经阅读了您在 github 上的 attention_ocr README.md(https://github.com/tensorflow/models/tree/master/research/attention_ocr),以及我应该如何使用自己的图像数据来训练模型与 StackOverFlow 页面。(https://stackoverflow.com/a/44461910/743658)但是,我没有得到任何关于如何存储图片的注释或标签的信息,或者这个问题的格式。对于对象检测模型,我能够使用 LabelImg 制作我的数据集并将其转换为 csv 文件,最后制作 .tfrecord 文件。我想制作 FSNS 数据集格式的 .tfrecord 文件。

你能给我你的建议吗?

0 投票
0 回答
111 浏览

tensorflow - 使用带有注意力层的 Convlstm2d 预测结果时出现值错误?

我正在将注意力机制与 convlstm2d 集成。我可以构建和拟合模型,但在预测结果时会出现值错误。我正在使用来自以下地址的注意力层实现: https ://www.kaggle.com/qqgeogor/keras-lstm-attention-glove840b-lb-0-043

这是我得到的错误:

0 投票
0 回答
866 浏览

python-3.x - PyTorch 运行时错误:预期参数的类型为 long,但得到的是 CPUType

我是 PyTorch 的新手,正在阅读有关变压器模型的本教程。我在 Win10 上使用 PyCharm。现在,我基本上只是复制粘贴了示例代码,但出现以下错误:

RuntimeError:参数#1 'indices' 的预期张量具有标量类型 Long;但得到了 CPUType (在检查嵌入参数时)

它似乎来自这条线

def 编码(self,src,src_mask):
返回 self.encodder(self.src_embed(src),src_mask)

Tbh,我什至不确定这意味着什么,更不用说我应该如何修复它了。什么是 CPU 类型?我什么时候创建了这种类型的变量?通过查看代码,我只使用张量(或 numpy 数组)

这是完整的错误消息:

C:...\Python\Python37\lib\site-packages\torch\nn_reduction.py:46: UserWarning: size_average 和 reduce args 将被弃用,请改用 reduction='sum'。warnings.warn(warning.format(ret)) C:/.../PycharmProjects/Transformer/all_the_code.py:263: UserWarning: nn.init.xavier_uniform 现在已弃用,取而代之的是 nn.init.xavier_uniform_。nn.init.xavier_uniform(p) Traceback(最近一次调用最后):
文件“C:/.../PycharmProjects/Transformer/all_the_code.py”,第 421 行,在
SimpleLossCompute(model.generator,criteria,model_opt)
文件中“C:/.../PycharmProjects/Transformer/all_the_code.py”,第 297 行,在 run_epoch
batch.src_mask,batch.trg_mask
文件“C:/.../PycharmProjects/Transformer/all_the_code.py”,第 30 行,
return self.decode(self.encode(src, src_mask), src_mask,
File "C:/.../PycharmProjects/Transformer/all_the_code.py", line 34, in encode
return self.encoder(self.src_embed(src) , src_mask)
文件“C:...\Python\Python37\lib\site-packages\torch\nn\modules\module.py”,第 493 行,在 __call__
结果 = self.forward(*input, **kwargs)
文件“C:...\Python\Python37\lib\site-packages\torch\nn\modules\container.py”,第 92 行,前向
输入 = 模块(输入)
文件“C:...\Python\ Python37\lib\site-packages\torch\nn\modules\module.py”,第 493 行,在 __call__
结果 = self.forward(*input, **kwargs)
文件“C:/.../PycharmProjects/Transformer/ all_the_code.py”,第 218 行,向前
return self.lut(x) * math.sqrt(self.d_model)
File "C:...\Python\Python37\lib\site-packages\torch\nn\modules\module.py",第 493 行,在 __call__
结果 = self.forward(*input, **kwargs)
文件“C:...\Python\Python37\lib\site-packages\torch\nn\modules\sparse.py”,第 117 行,向前
self.norm_type , self.scale_grad_by_freq, self.sparse)
文件“C:...\Python\Python37\lib\site-packages\torch\nn\functional.py”,第 1506 行,嵌入
返回 torch.embedding(weight, input, padding_idx、scale_grad_by_freq、稀疏)

0 投票
0 回答
98 浏览

tensorflow - 如何使用 tensorflow 让 lstm/rnn 更多地关注时间序列的某些部分,而更少关注其他部分?

我有一个时间序列预测问题,其中大多数观察值(95%)是 0,而其余值是非零。我如何利用 RNN 来解决这个问题。

我想根据环境数据(气温、降雨量、湿度等)预测地表流量。我们知道一年中大部分时间地表流量为 0.0。但是,我也不想简单地忽略 0,因为 0 代表一年中地表流量为 0.0 的时期。下图显示了可能观察到的输出和三个输入。这里的三个输入只是随机的,但实际上它们将是降雨、湿度等数据,并且这些输入数据具有一些周期性模式。

在此处输入图像描述

问题是,在训练时,模型关注大多数值,即 0,因此预测等于 0。如何使模型专注于非零值(正表面流),同时还考虑 0(当没有表面流时)。我已经阅读了注意力机制,但不明白如何在这种情况下实现它。