GlobalAveragePooling vs Flatten

Lee Hyun Joon ·2022년 7월 23일
0

ML_Basic

목록 보기
11/14

pooling이라 함은 AveragePooling과 MaxPooling을 들어본 적이 있고, 이 둘의 차이가 무엇인지 아는데 별로 오래 안 걸린다. 하지만, GlobalAveragePooling을 flatten 대신에 사용한다는 코드를 보면서 이 둘의 차이에 대해 궁금해져서 짧게나마 정리해서 남기려고 한다.

GlobalAveragePooling을 사용하는 경우는 총 parameter 수를 줄여서 overfitting을 방지해야하는 경우라고 한다. 이 pooling은 매우 작은 차원으로 축소하는 것이 특징이다.

GlobalAveragepooling은 FC layer의 대체 안으로 쓰일 수 있다

실제 코드 예시

model = tf.keras.Sequential([
    tf.keras.layers.Embedding(vocab_size, embedding_dim, input_length=max_length),
    tf.keras.layers.GlobalAveragePooling1D(), # 이와 같이 Flatten 대신에 사용될 수 있다.
    tf.keras.layers.Dense(24, activation='relu'),
    tf.keras.layers.Dense(1, activation='sigmoid')
])
profile
우당탕탕 개발 지망생

0개의 댓글