问题标签 [encoder-decoder]

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 投票
2 回答
1447 浏览

keras - LSTM 编码器-解码器推理模型

许多基于 LSTM 的 seq2seq 编码器-解码器架构教程(例如英法翻译)将模型定义如下:

然后对于预测,他们将推理模型定义如下:

然后预测使用:

我的问题是,他们训练了名为“fullmodel”的模型以获得最佳权重......在预测部分,他们使用了名称为(encoder_model & decoder_model)的推理模型......所以他们没有使用任何权重“全模型”?!

我不明白他们如何从训练有素的模型中受益!

0 投票
1 回答
1640 浏览

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

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

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

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

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

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

但似乎没有任何效果

编码器类

注意课

解码器类

seq2seq 类

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

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

0 投票
1 回答
646 浏览

lstm - RNN 编码器-解码器模型不断过拟合

我已经用 RNN 训练了一个机器翻译模型(从英语到越南语),具有 25000 个示例对的 LSTM(用于训练集 -> 20000,测试集 -> 5000)我使用的模型如下所示,但 val_acc 总是达到〜0, 37 并且不会增加,尽管我使用了其他一些模型并且 epoch 大约是 100:

我希望模型可以防止过度拟合,希望你们帮我解决问题

0 投票
1 回答
416 浏览

deep-learning - 基于变压器的解码

变压器模型中的解码器可以像编码器一样并行化吗?据我了解,编码器具有序列中的所有标记来计算自注意力分数。但是对于解码器来说,这是不可能的(在训练和测试中),因为自我注意力是根据之前的时间步输出计算的。即使我们考虑使用诸如teacher forcing之类的技术,我们将预期输出与得到的输出连接起来,这仍然具有来自前一个时间步的顺序输入。在这种情况下,除了在捕获长期依赖关系方面的改进之外,在纯粹基于并行化进行比较时,使用转换器解码器是否比使用 lstm 更好?

0 投票
0 回答
141 浏览

lstm - 推理模型在编码器-解码器中重复预测相同的单词

我正在使用 LSTM 训练编码器-解码器,用于在 Amazon Kindle 数据集上生成抽象的评论摘要。对于每个输入,输出摘要略有不同,但它们会重复生成几个单词。

我已经尝试在每个解码器时间步对 softmax 概率进行随机抽样。因此,每个输入的结果都不同,但与输入文本无关。在每个时间步绘制 softmax 概率的直方图显示了相似的分布,尽管数字略有不同。我试过降低学习率

输入:我很喜欢这本书写得很好会再读一次很好读

输出:SOS 不能强调 压力 压力 压力 撕裂 撕裂 弯曲

0 投票
0 回答
181 浏览

keras - 如何使用编码器-解码器 lstm 正确生成序列?

我正在实施一些代码来为自然语言理解 (NLU) 生成标签数据,来自文章“使用编码器-解码器 LSTM 进行语义槽填充的标记数据生成”(https://pdfs.semanticscholar.org/7ffe/83d7dd3a474e15ccc2aef412009f100a5802.pdf) . 我的架构是一个简单的编码器-解码器 LSTM,但由于我生成的句子(用于单词和标签)不正确,我试图生成完全相同的句子(仅单词)作为输入。不幸的是,这不能正常工作。

我正在使用 vord2vec 进行词嵌入,并且嵌入的维度设置为 64(如文章中所建议的那样)。编码器 LSTM 以相反的顺序接收序列,丢失率为 0.5。解码器 LSTM 还具有 0.5 的 dropout 率和用于序列的每个输出的 softmax 层以映射最可能的单词。输入与目标(相同的句子)完全相同,因为首先我想产生完全相同的句子。

对于训练,我使用 Adam 优化器和 categorical_crossentropy 进行损失。对于推理,我在生成序列时使用了波束搜索 (B=3)。

我的训练代码:

我的推理代码:

我生成的序列的一个例子:

输入语句:BOS i 'm Fourth in flight from boston to atlanta EOS PAD PAD PAD ... 生成语句:BOS from from from from from from from from from from from from from from from from from ...

似乎训练权重不正确,但在训练期间我得到了 loss: 0.0032 - acc: 0.9990 - val_loss: 0.0794 - val_acc: 0.9888。

我想要的只是生成与输入完全相同的句子。希望你们能帮助我。先感谢您!

0 投票
0 回答
160 浏览

python - 编码器-解码器网络可以用于不同的输入和输出吗?

处理图像翻译问题。有很多对输入-输出图像,比如说草图作为输入,翻译草图作为输出。图像是黑白的,带有 1 像素宽度的草图线。

可以使用简单的编码器-解码器来学习图像翻译吗?

下面的代码片段来自https://blog.keras.io/building-autoencoders-in-keras.html,它显示了自动编码器的编程方式。显然,作为自动编码器,输入和输出都显示相同。

但是在这里,我可以给出“x_train,y_train”而不是“x_train,xtrain”作为前两个参数,其中 x_train 是输入图像,y_train 是输出图像?

理论上是正确的吗?以下优化器和成本函数会起作用吗?

通常 Pix2Pix 网络用于此类工作。但是 GAN 的主要原则是他们学习成本函数以获得良好的输出。

在我的问题中,成本函数是非常确定的,而不是到处都有一个像素。因此可以清楚地定义错误。

甚至在这里尝试 Pix2Pix 在理论上是否正确?

0 投票
1 回答
1541 浏览

ffmpeg - 使用 FFMPEG 修改编码器元数据的问题

我正在尝试使用 FFMPEG 元数据更改 FFMPEG 编码器编写应用程序,无论出于何种原因,它都在读取输入,但实际上并没有写出任何内容。

-map_metadata -metadata:s:v:0 -metadata writing_application,基本上每个堆栈溢出和堆栈交换线程,但它们根本不会写入文件。

元数据文件

我试图提取数据并用 FFMETADATAFILE 重写它,但它没有显示出来。尝试强制 ffmpeg 在没有任何 emtadata 的情况下写入并将其写回但不起作用。想知道我是否可以编写自己的编码器来写入特定的编码器名称,例如 Handbrake/Lavf 如何将编码器应用程序写入视频文件的元数据。或者只是使用 FFMPEG 并本机修改元数据。

0 投票
1 回答
380 浏览

slice - 如何将切片组合/合并为每个视频帧一个切片(h.264)

我需要找到一种方法或代码,可以将多个切片(NAL 单元)组合成每个视频帧的单个切片

我有一些剪辑。他们的大多数帧都使用 H.264 每帧使用多个切片进行编码,但这会在我们的解码器上引发一些问题,我们无法更改或修改这些问题,但如果每帧只有一个切片,解码器就可以正常工作。我尝试 FFmpeg 将多个切片合并为一个,但我没有找到任何方法来做到这一点。

有人可以建议这样做吗?最好有一些代码可以做到这一点,比如开源。

谢谢

0 投票
1 回答
381 浏览

python - Keras 中的计划采样

我想知道如何在 keras 中实施本文 [ https://arxiv.org/abs/1506.03099]中描述的计划抽样(可能与课程学习一起)。

让我们假设一个简单的编码器解码器模型,如下所示。如果可能,您将如何更改此模型以包含这些策略和行为?