[모두를 위한 딥러닝2] RNN #6 Packed Sequence
Packed Sequence
- 길이가 각각 다른 sequence 데이터를 하나의 batch로 묶기 위해
- sequence 데이터의 예시 : text, audio 등
방법 1. padding
- padding : 가장 긴 sequence의 길이에 맞춰 나머지 data의 뒷부분을 'pad'라는 토큰을 써서 채워넣는 방식
- 불필요하게 뒷부분을 계산해야 한다는 단점이 있음
방법 2. packing
- packing : sequence의 길이에 대한 정보를 저장하는 방식
- pytorch에서 제대로 동작하기 위해서는 batch 데이터는 길이 내림차순으로 정렬되어 있어야 함
- pack sequence : sequence에 대한 정보, 실제 데이터 tensor를 같이 가지고 있는 자료구조
- padding 방식에 비해 효율적이지만 내림차순 정렬을 해야 하고 비교적 복잡하다는 단점이 있음
pytorch 내의 함수
- pad_packed : pack된 걸 padding 해라
- pack_padded : pad된 걸 packing 해라