pad_sequences method

EUNSU·2022년 1월 8일
1

Tensorflow

목록 보기
1/1
tf.keras.preprocessing.sequence.pad_sequences(
    sequences, maxlen=None, dtype='int32', padding='pre',
    truncating='pre', value=0.0
)

이 함수는 Sequences로 이루어진 리스트를 넘파이 2d 배열로 바꿔주는 함수이다. 리턴되는 배열의 형태는 (num_samples, num_timesteps)로 출력된다. 각 파라미터들의 역할을 살펴보자.

  • sequences : 바꾸고자 하는 sequences들이 들어있는 리스트를 넣어주면 된다.

  • maxlen : sequence를 원하는 길이로 바꿔줄 때 사용하는 파라미터이다. default 값은 리스트 내 요소의 최대길이로 리턴해준다.

  • dtype : 원하는 데이터 타입을 넣어주면 된다.

  • padding : 길이를 맞춰줄 때 padding 을 넣어주는 방식을 정해주는 파라미터이다. 인자값으로는 pre/post가 있고 default 값은 pre 이다. pre는 전, post는 후에 padding을 넣어준다.

  • truncating : 리스트 내 sequence가 maxlen보다 길어서 잘라줄 때 사용하는 파라미터이다. padding과 마찬가지로 인자값으로는 pre/post가 있고 default값은 pre 이다.

  • value : padding을 넣어줄 때 값을 지정하는 파라미터이다. default값은 0 이다.

간단한 예제를 통해 결과값을 살펴보자


from tensorflow.keras.preprocessing.sequence import pad_sequences

data = [[1,2,2,3],
        [3,7,6,5,3],
        [8,1,2,6,8,4,1,6]]

pad_sequences(data, padding="post")

padding 을 "post"로 설정하니 padding값이 sequence의 뒤로 들어간 것을 확인할 수 있다.

이번에는 maxlen을 리스트 내 sequence의 최대길이보다 작은 수를 넣어보자.

data = [[1,2,2,3],
        [3,7,6,5,3],
        [8,1,2,6,8,4,1,6]]

pad_sequences(data, maxlen = 6,
			  padding="post", truncating="post")

maxlen 을 6으로 설정하고 truncating 을 "post"로 설정하니 길이가 6이 넘을때 뒤에서 잘라주는 것을 확인할 수 있다.

여기까지 sequence를 요소로 갖고 있는 리스트에 padding을 넣어주는 함수 pad_sequences 를 살펴 보았다.

profile
머신러닝 엔지니어

0개의 댓글