我有以下目标,我一直试图通过 Huggingface 库来实现这个目标,但遇到了一些障碍。
问题:
我想在训练时以可微分的方式生成句子。我为什么要这样做?我想对这个输出应用一个判别器来生成具有某些属性的句子,这些属性是由判别器“强制执行”的。这些句子也将以输入句子为条件,因此我需要一个编码器解码器模型。
为了解决 argmax 的不可微性,我只需采用解码器的 softmax 输出并将其与我的嵌入矩阵相乘。然后,我将这个嵌入式输入输入到变压器鉴别器中,该鉴别器简单地将输入分类为原始/伪造。然后我通过编码器解码器进行反向传播。就像人们对普通 GAN 所做的那样。
到目前为止,我已经尝试使用EncoderDecoderModelHuggingface 中的。这个类有一个名为generate的方法,它以不可微分的方式(贪婪或束搜索)生成句子。因此,我深入研究了源代码并尝试构建自己的可微生成方法。但我没有让它发挥作用。
问题:
感谢您的帮助,我真的很感激,我已经在这件事上安静地坚持了一段时间了。
nlp discriminator pytorch generative-adversarial-network huggingface-transformers