К сожалению, прямого эквивалента пока нет, , хотя он был запрошен .
Я также изучил весь объект PackedSequence
, но для него не определена операция .flip()
в теме.Предполагая, что у вас уже есть необходимые данные для предоставления длин, как вы и предлагали, вы можете реализовать их с помощью этой функции:
def flipBatch(data, lengths):
assert data.shape[0] == len(lengths), "Dimension Mismatch!"
for i in range(data.shape[0]):
data[i,:lengths[i]] = data[i,:lengths[i]].flip(dims=[0])
return data
К сожалению, это работает, только если ваша последовательность двумерна (с batch_size x sequence
), но вы можете легко расширить это для ваших конкретных входных требований.Это уже более или менее охватывает предложение в приведенной выше ссылке, но я обновил его до сегодняшнего стандарта.