[모두를 위한 딥러닝2] RNN #6 Packed Sequence

YSL·2021년 8월 23일
0

모두를 위한 딥러닝2

목록 보기
23/23

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 해라

0개의 댓글