오답노트

[Keras] 모델 성능에 유용한 Layer 본문

Python/DL

[Keras] 모델 성능에 유용한 Layer

권멋져 2022. 9. 19. 18:44
#레이어 선언
il = keras.layers.Input(shape=(4,))
h1 = keras.layers.Dense(256,'swish')(il)
bl = keras.layers.BatchNormalization()(h1) # <<<
dl = keras.layers.Dropout(0.2)(bl) # <<<
ol = keras.layers.Dense(3,'softmax')(dl)

#모델 선언
model = keras.models.Model(il, ol)

#모델 컴파일
model.compile(loss=keras.losses.categorical_crossentropy,
              optimizer='adam',
              metrics=['accuracy'])

#모델 확인
model.summary()

#모델 학습
model.fit(train_x,train_y, verbose=1,epochs=10)

BatchNormalization

이전 노드에서의 값들이 편향될 수 있다. 이전 노드 값들을 정규화하여 모델 학습에 도움이 되게 한다.

(ref. https://www.tensorflow.org/api_docs/python/tf/keras/layers/BatchNormalization)

 

Dropout

이전 노드를 그대로 가져와서 사용한다. 하지만 사용자가 지정한 비율만큼 노드를 비활성화 시켜 과적합을 방지한다.

(ref. https://www.tensorflow.org/api_docs/python/tf/keras/layers/Dropout)

'Python > DL' 카테고리의 다른 글

[Keras] CNN 관련 레이어 - Conv2D, MaxPool2D  (2) 2022.09.21
[DL] CNN (Convolutional Neural Network)  (0) 2022.09.19
[Keras] 연산 Layer  (0) 2022.09.18
[Keras] EarlyStopping  (0) 2022.09.15
[Keras] Flatton Layer  (0) 2022.09.15