작성
·
441
0
GlobalAveragePooling2D()
에서 InceptionV3
의 다차원 Feature Map을 1차원 스칼라로 차원변환 해주는데, 여기서 GlobalAveragePooling2D()
를 사용하심은, 아래 이미지에서 Flatten된 Vector를 구현 하심이 맞으실까요? 왜 2D 해당 기법은, CNN + FCN을 대체하기위해 사용된다는정도로만 인지하고 있습니다.
x = tf.keras.layers.GlobalAveragePooling2D()(x) # Multi dimension featuremap to one dimension scalar value.
YOLO Format으로 Flatten 시킬때, 활성화 함수는 지정할 필요가 없나요? 원 논문에서 마지막 Layer에 대해 linear activation function을 사용했는데, 수업에서 사용한 코드에서는 'None'으로 지정된 이유가 어떻게 될까요?
output = tf.keras.layers.Dense(cell_size * cell_size * (num_classes + 5 * boxes_per_cell), activation="None")(x) # Yolo 형태에 맞는 Flatten 된 벡터로 변환
답변 1
0
안녕하세요~. 반갑습니다.
네. 맞습니다. 해당 FeatureMap들을 1차원 벡터로 Pooling 해줘서 Flattening한 것과 유사한 레이어를 얻는 것입니다.
TensorFlow에서 activation을 None으로 지정하면 linear activation과 동일한 수식(Wx+b)이 되게 됩니다. 즉 논문과 똑같이 linear activation을 지정해준 것입니다.
좋은 하루 되세요.
감사합니다.