torch.nn.utils.rnn.pack_padded_sequence#
- torch.nn.utils.rnn.pack_padded_sequence(input, lengths, batch_first=False, enforce_sorted=True)[原始碼]#
將包含可變長度填充序列的 Tensor 打包。
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物件- 返回型別