본문 바로가기
AI/Deep-Learning

[Keras] pad_sequences()

by Wikinist 2023. 9. 12.

Keras의 pad_sequences 함수는 시퀀스 데이터를 패딩하여 동일한 길이의 시퀀스로 만들어주는 유용한 도구입니다. 이 함수는 주로 텍스트, 시계열 데이터, 또는 다른 유형의 순차적 데이터를 처리할 때 사용됩니다. 패딩은 시퀀스 길이를 조정하여 모델의 입력 데이터 크기를 일정하게 만들 때 특히 유용합니다.

pad_sequences 함수의 시그니처는 다음과 같습니다.

keras.preprocessing.sequence.pad_sequences(
    sequences,            # 패딩할 시퀀스 데이터 리스트
    maxlen=None,          # 패딩된 시퀀스의 최대 길이 (기본값: None)
    dtype='int32',        # 반환된 패딩된 배열의 데이터 타입 (기본값: 'int32')
    padding='pre',        # 패딩 위치 ('pre' 또는 'post') (기본값: 'pre')
    truncating='pre',     # 잘라내는 위치 ('pre' 또는 'post') (기본값: 'pre')
    value=0.0             # 패딩된 부분에 할당되는 값 (기본값: 0.0)
)

각 매개변수에 대한 설명은 다음과 같습니다:

sequences: 패딩할 시퀀스 데이터의 리스트 또는 배열. 이는 리스트의 리스트 또는 2D 넘파이 배열로 나타낼 수 있습니다.
maxlen: 패딩된 시퀀스의 최대 길이. 이 길이에 맞춰 시퀀스가 패딩됩니다. 만약 지정하지 않으면, 시퀀스 중 가장 긴 길이로 패딩됩니다.
dtype: 반환된 패딩된 배열의 데이터 타입을 지정합니다.
padding: 'pre' 또는 'post' 중 하나를 선택하여 패딩이 시퀀스 앞쪽에 추가될지 뒷쪽에 추가될지 지정합니다.
truncating: 'pre' 또는 'post' 중 하나를 선택하여 시퀀스가 지정된 길이보다 길 경우 어느 부분을 잘라낼지 지정합니다.
value: 패딩된 부분에 할당될 값. 기본적으로 0.0이 할당됩니다.

예를 들어, 다음은 pad_sequences 함수를 사용하여 시퀀스 데이터를 패딩하는 간단한 예제입니다:

from keras.preprocessing.sequence import pad_sequences

sequences = [[1, 2, 3], [4, 5], [6, 7, 8, 9]]
padded_sequences = pad_sequences(sequences, maxlen=5, padding='post', truncating='post')

print(padded_sequences)

위 예제에서는 시퀀스를 길이가 5인 시퀀스로 패딩하고, 패딩은 시퀀스 뒷쪽에 추가되며, 시퀀스가 지정된 길이를 초과할 경우 뒷부분이 잘려나갑니다

해당 게시글은 ChatGPT의 도움을 받아 작성되었습니다.