如何将批次输入LSTM而无需在PyTorch中按长度重新排序?

时间:2017-11-22 11:09:21

标签: pytorch

我是Pytorch的新手,我遇到了一些麻烦。 我想建立一个排名模型来判断问题及其答案的相似性(包括正确的答案和错误的答案)。我使用LSTM作为编码器。

我的模型中有两个LSTM,它们共享权重。所以我模型的输入是两个序列(问答)。但如果我使用批量,重新排序将破坏问题和答案之间的对应关系。 我该怎么办?

2 个答案:

答案 0 :(得分:1)

也许一个起点可能是使用类似的RNN包装器https://github.com/facebookresearch/DrQA/blob/master/drqa/reader/layers.py#L20 你可以单独编码问题和asnwer(这个模块将在内部打包和解包,并负责排序),然后你可以处理编码的表示

答案 1 :(得分:0)

我已经为NLP上传了一些有用的火炬实用程序。有些可能对pack_padded_sequence有用:https://github.com/wjpjet/torch_utilities/blob/master/torch_util.py