저번 시간에는 tensorflow.keras.activations의 활성화함수들에 대해 알아보았었다. 이러한 활성화 함수들을 실제 AI모델에서 어떻게 사용할 수 있을까? 한번 알아보자.
모델을 만드는 방법엔 크게 Sequential model, functional API, 그리고 Model Subclassing 3가지 방법이 있다.
Sequential model은 가장 쉽고 간편하며 빠르게 모델을 만들 수 있는 방법이나 여러가지 입력을 처리하거나 복잡한 신경망을 만드는 등 복잡한 작업을 수행하기가 어렵다는 단점이 있다.
그리고 Model Subclassing 방법은 사용자가 원한대로 만들 수 있지만 처음부터 일일이 만드는 방법으로 복잡하다는 단점이 있다.
그러므로 functional API로 tensorflow.keras.activations에 내장된 함수들을 사용하는 방법에 다뤄보도록 하겠다.
함수형 API를 사용하여 모델을 만드는 법은 간단하다. 아래와 같이 함수 형식으로 줄줄이 이어서 만드는 형식으로 만들 수 있다.
from tensorflow.keras.models import Model
from tensorflow.keras.layers import Dense, Input
inputs = Input(shape=(2,))
outputs = Dense(3)(inputs)
model = Model(inputs = inputs, outputs = outputs)
모델이 잘 만들어졌는지 아래코드로 확인할 수 있다.
model.summary()
실행결과 잘 만들어졌음이 확인이 가능하다.
그림으로 나타내자면 이런 식의 모델이다.
이제 우리는 여기에다 활성화함수를 추가해서 사용하고 싶다.
추가하는 방법은 간단하다. 저번시간에 사용했던 함수를 중간에 집어넣으면 된다.
아래 예시는 relu를 사용한 예시이다.
from tensorflow.keras.models import Model
from tensorflow.keras.layers import Dense, Input
from tensorflow.keras.activations import relu
inputs = Input(shape=(2,))
x1 = Dense(3)(inputs)
outputs = relu(x1)
model_relu = Model(inputs=inputs,outputs=outputs)
아래 코드로 모델이 잘 만들어졌는지 확인이 가능하다.
model_relu.summary()
relu함수가 모델에 잘 적용된 것을 확인이 가능하다.
그림으로 나타내자면 이런 식으로 모델이 만들어진 것이다.
이번시간에는 tensorflow.keras.activations 의 함수들을 실제 학습이 가능한 모델에 적용시키는 법에 대해 알아보았다.
혹시 궁금한 점이 있거나 틀린 부분이 있다면 자유롭게 댓글로 제시해 주세요!
참조
Keras documentation: Models API
Models API There are three ways to create Keras models: The Sequential model, which is very straightforward (a simple list of layers), but is limited to single-input, single-output stacks of layers (as the name gives away). The Functional API, which is an
keras.io
https://keras.io/api/layers/activations/
Keras documentation: Layer activation functions
Layer activation functions Usage of activations Activations can either be used through an Activation layer, or through the activation argument supported by all forward layers: model.add(layers.Dense(64, activation=activations.relu)) This is equivalent to:
keras.io
'수업내용정리 > 인공지능' 카테고리의 다른 글
[SckitLearn]지도학습 알고리즘(1)_의사결정트리의 특징과 사용법 (0) | 2023.02.11 |
---|---|
[Tensorflow][Keras]Pooling 의 종류 및 사용법_ CNN이란? (0) | 2023.02.08 |
[Tensorflow][Keras]활성화 함수 코드로 알아보기 (0) | 2023.02.05 |
[인공지능]활성화 함수의 종류 알아보기 (0) | 2023.01.20 |
[Tensorflow][Keras]활성화 함수의 사용법 간단하게 알아보기 (0) | 2023.01.18 |