0

按照PyTorch 文档中的示例,我试图解决填充不一致的问题,而不是在每个批次的张量末尾(换句话说,没有双关语,我有一个左删失和右删失问题我的批次):

 # Data structure example from docs
seq = torch.tensor([[1,2,0], [3,0,0], [4,5,6]])
 # Data structure of my problem
inconsistent_seq = torch.tensor([[1,2,0], [0,3,0], [0,5,6]])

lens = ...?
packed = pack_padded_sequence(seq, lens, batch_first=True, enforce_sorted=False)

当使用(最好)PyTorch 功能通过 LSTM 运行它们时,如何解决掩盖这些填充 0 的问题?

4

1 回答 1

0

我通过基本上重新索引我的数据并用 0 填充左删失数据来“解决”这个问题(对我的问题有意义)。我还向输入维度注入了额外的张量来跟踪这个填充。然后,我使用 PyTorch 库中的 pack_padded_sequence 方法屏蔽了右删失数据。在这里找到了一个很好的来源:

https://www.kdnuggets.com/2018/06/taming-lstms-variable-sized-mini-batches-pytorch.html

于 2022-02-02T12:52:40.460 回答