텐서플로와 케라스를 이용해서 CNN 구조를 만들기 위해 컨볼루션 레이어를 추가할때, 대개 컨볼루션 함수를 활성화와 함께 한 줄의 코드로 작성해줍니다. 다음과 같이 말이죠.
model.add(layers.Conv2D(32, (3, 3), activation='relu'))
그런데 종종 필요에 의해 컨볼루션과 활성화를 분리해서 진행해야 하는 경우도 있습니다. 그런 경우에는 다음과 같이 코드를 분리해줄 수 있습니다. 위 코드와 완전히 동일한 일을 해줍니다.
model.add(layers.Conv2D(32, (3, 3)))
model.add(layers.Activation(activation='relu'))
FC(Fully connected) 레이어를 만들때도 마찬가지로 활성화를 따로 빼낼 수 있습니다.
model.add(layers.Dense(64, activation='relu'))
이렇게 쓰나,
model.add(layers.Dense(64))
model.add(layers.Activation(activation='relu'))
이렇게 코딩하나 똑같습니다.
<참고자료>
[1] https://keras.io/api/layers/activations/, Keras, "Layer activation fuctions"
'코딩 > python + 컴퓨터비전' 카테고리의 다른 글
[python] DISTS 파이썬 코드 실행하기(IQA_pytorch 패키지) (4) | 2020.08.10 |
---|---|
[python] SSIM 파이썬 코드 실행하기(IQA_pytorch 패키지) (0) | 2020.08.10 |
[python] 미리 훈련된 MobileNet으로 이미지 분류하기 (0) | 2020.07.26 |
[python] 뽀로로 친구들을 검출해보자(Tensorflow object detection API) (0) | 2020.06.19 |
[Anaconda+python] 전이학습 이용해서 가위, 바위, 보 분류기 만들기 (41) | 2020.04.20 |
[Anaconda+python] 웹캠 영상 프레임 샘플링해서 저장하기(쉽게 이미지 데이터베이스 만들기) (7) | 2020.03.19 |
[python] 웹에서 이미지 수집하기, 이미지 크롤링 (beautifulsoup 활용) (12) | 2020.03.18 |
[Anaconda+python] 미리 훈련된 ResNet50으로 이미지 분류하기 (0) | 2020.03.14 |