torch.nn.utils.rnn.pack_padded_sequence¶
- torch.nn.utils.rnn.pack_padded_sequence(input, lengths, batch_first=False, enforce_sorted=True)[source][source]¶
打包包含可變長度填充序列的張量。
input可以是T x B x *大小(如果batch_first為False)或B x T x *大小(如果batch_first為True),其中T是最長序列的長度,B是批次大小,*是任意維度數(包括 0)。對於未排序的序列,請使用 enforce_sorted = False。如果
enforce_sorted為True,序列應按長度降序排列,即input[:,0]應為最長序列,而input[:,B-1]應為最短序列。enforce_sorted = True 僅在 ONNX 匯出時是必要的。它是
pad_packed_sequence()的逆操作,因此可以使用pad_packed_sequence()來恢復打包在PackedSequence中的底層張量。注意
此函式接受至少包含兩個維度的任何輸入。您可以將其用於打包標籤,並使用 RNN 的輸出與標籤一起直接計算損失。可以透過訪問
PackedSequence物件的.data屬性來從中檢索張量。- 引數
- 返回型別
警告
如果
input張量的長度大於length中的對應值,則其維度將被截斷。- 返回
一個
PackedSequence物件- 返回型別