오답노트
[Keras] 모델 성능에 유용한 Layer 본문
#레이어 선언
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 |