问题标签 [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.
tensorflow - TimeDistributed(Dense) vs Dense in seq2seq
鉴于下面的代码
如果我改变
decoder_dense = TimeDistributed(Dense(93, activation='softmax'))
至
decoder_dense = Dense(93, activation='softmax')
它仍然有效,但哪种方法更有效?
tensorflow - Keras 循环 LSTM 层
我正在尝试构建一个基本上是序列到序列模型的模型,但我有一个特殊的编码器,即“辅助编码器”。
辅助编码器中的时间步长 = 300
这个编码器有一个特殊的属性,本质上它是一个GRU,但是在每个时间步都需要改变GRUCell产生的隐藏状态,需要添加另一个变量,然后这个组合(新的隐藏状态)是传递给下一个 GRUCell,它使用这个作为 initial_state........这个东西重复了 300 次。
由于需要 300 个 GRUCell(每个时间步一个),因此对 300 层中的每一层进行硬编码并创建模型是不可行的。所以,我需要帮助来弄清楚如何编写一个循环来在 keras 中实现这个东西,或者如何创建一个自定义层(如果这是一个更好的选择)。
我的想法(伪代码):-
这里alpha是我要添加的变量
这行得通吗?该模型是否能够解释它需要在每个训练示例中循环 300 次?
这个模型很大,它有跳过连接和许多其他的东西,这就是为什么我需要你的帮助来解决我的问题的这个子集,然后我才实现其余的,请忽略语法,这只是伪代码。
另外,我需要再次调用这个模型,所以我认为迭代方式会大大减慢这个过程,对吧?
tensorflow - 将注意力层添加到编码器-解码器模型架构会产生更差的结果
我最初为Next Phrase Prediction定义了一个编码器-解码器模型架构,并在一些数据上对其进行了训练,我成功地能够使用相同的模型进行预测。但是当我尝试在架构中插入注意力层时,模型训练是成功的,但我无法分别定义编码器和解码器模型进行预测。这是我定义的新模型架构:
训练这个模型并使用相同的张量定义另一个编码器和解码器:
模型训练后的结果变差了,我相信我的模型架构有些问题。在尝试了许多排列之后,我得到了这个架构。浏览模型架构一次。
lstm - Tensorflow seq2seq 模型,损失值不错,但预测错误
我正在尝试训练 Seq2Seq 模型。它应该将句子从 source_vocabulary 翻译成 target_vocabulary 中的句子。
损失值为 0.28,但网络不会从目标词汇表中预测单词。相反,网络的预测是负值。我不确定,如果代码中的某些内容是错误的,或者词汇量是否太大,或者我没有接受足够的训练。我用大约 270 000 个句子的数据集的一部分进行训练。即使损失值减少,我也不知道网络是否正在学习一些东西。
keras - Keras - 嵌入层输入错误和相应的 input_length 错误
Input
我在取Embedding
第一层时遇到错误。(,9)
尽管我在 中明确提到了形状,但它无法找到形状的张量Input()
。有人可以帮我解决这个问题吗?
代码如下:
gzip - 反应式 GZIP 解码器
Spring-core 5.2 具有带有解码器的编解码器包,例如StringDecoder
支持反应式编程。API 获取Publisher<DataBuffer>
并返回解码Flux<String>
。
我希望找到 GzipDecoder 获得Publisher<DataBuffer>
或Publisher<ByteArray>
gzip 并返回 uncomperesedFlux<ByteArray>
但我没有找到它。
我发现符合我要求的唯一库是https://github.com/kptfh/gzip-reactive 但它非常不成熟
任何熟悉成熟的代码?
python - 错误:遵循序列到序列教程的 Keras 中的维度冲突层
按照本教程 https://blog.keras.io/a-ten-minute-introduction-to-sequence-to-sequence-learning-in-keras.html
具体来说,关于使用整数排序的数据而不是 one-hot 编码的部分。
- 从下面的错误消息中,我可以看到它与维度冲突有关。我按照原始教程进行操作,当编码器、解码器输入和解码器输出的形状相同时(因为使用一个热向量对数据进行预处理),没有出现此类问题。这让我相信我的 .Model 输入的尺寸是罪魁祸首。但是,我希望使用嵌入层应用掩码,这需要使用整数序列数据。
编码器输入形状:TensorShape([None, None])
解码器输入形状:TensorShape([None, None])
解码器输出形状:TensorShape([None, None, 99])
我发现的每个教程似乎都表明这不是问题(?)。
python - 在 seq-to-seq 模型中以推理模式进行训练
这显然是我写的带有嵌入的 seq2seq 模型的代码
我们正在使用推理模式进行预测,特别是编码器和解码器模型,但我不确定编码器和解码器的训练在哪里进行?
编辑 1
代码基于:https://keras.io/examples/lstm_seq2seq/,添加了嵌入层和时间分布密集层。
有关问题的更多信息:github repo
python - 如何在编码器解码器模型的训练期间填充序列
我有一个用于字符级英语拼写校正的编码器-解码器模型,它是非常基本的东西,有两个 LSTM 编码器和另一个 LSTM 解码器。
但是,到目前为止,我一直在预先填充编码器输入序列,如下所示:
接下来我一直将数据分成几个具有相同解码器输入长度的组,例如
其中关键是解码器输入数据的长度,我一直在为循环中的每个长度训练一次模型。
但是,必须有更好的方法来做到这一点,例如在 EOS 之后或 SOS 字符之前进行填充等。但如果是这种情况,我将如何更改损失函数,以便该填充不计入损失?
surfaceview - 如何将原始视频数据(YUV/RGB)数据发送到 android 上的表面?
我正在开发一个应用程序,我需要在表面上发送原始数据(YUV/RGB)数据,在那里我可以看到视频。
现在我正在做的是,我正在接收一个编码帧(h265 形式)并将其提供给解码 API 以进一步解码,然后将解码后的数据直接传递给表面 API,这部分到目前为止工作正常。
现在我想要的是,我想在传递到表面之前进一步处理解码数据。我没有得到任何支持。如果有人可以帮助我将 YUV/RGB 形式的原始数据传递到表面,那么我将不胜感激。
提前谢谢你。
谢谢,罗纳克