코딩재개발 RSS 태그 관리 글쓰기 방명록
2020-06-09 14:30:53

텐서플로와 케라스를 이용해서 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"

글을 읽던 중에 궁금했던 부분은 질문해주세요.
칭찬, 지적, 의문, 격려, 감사표현 등을 남겨주세요.
최대한 답변 드리도록 노력하겠습니다.
욕설과 광고를 담은 댓글은 가차없이 삭제합니다.
비밀글