"I ate the cake"
순서 | ate | cake | I | the |
---|---|---|---|---|
알파벳 | 0 | 1 | 2 | 3 |
단어 순서 | 2 | 0 | 3 | 1 |
층수 | 종류 | 크기 | 활성화 함수 |
---|---|---|---|
1층 | Embedding | 8983,128 | - |
- | Global Average Pooling 1D | - | - |
2층 | FNN | 32 | ReLu |
- | Dropout | rate=0.1 | - |
3층 | FNN | 1 | sigmoid |
"""
Author : Byunghyun Ban
"""
from tensorflow import keras
import data_reader
# 몇 에포크 만큼 학습을 시킬 것인지 결정합니다.
EPOCHS = 50 # 예제 기본값은 50입니다.
# 데이터를 읽어옵니다.
dr = data_reader.DataReader()
# 인공신경망을 제작합니다.
model = keras.Sequential([
keras.layers.Embedding(8983, 128),
keras.layers.GlobalAveragePooling1D(),
keras.layers.Dense(32, activation='relu'),
keras.layers.Dropout(0.1),
keras.layers.Dense(1, activation='sigmoid')
])
# 인공신경망을 컴파일합니다.
model.compile(optimizer="adam", metrics=['accuracy'],
loss="binary_crossentropy")
# 인공신경망을 학습시킵니다.
print("\n\n************ TRAINING START ************ ")
early_stop = keras.callbacks.EarlyStopping(monitor='val_loss', patience=10)
history = model.fit(dr.train_X, dr.train_Y, epochs=EPOCHS,
validation_data=(dr.test_X, dr.test_Y),
callbacks=[early_stop])
# 학습 결과를 그래프로 출력합니다.
data_reader.draw_graph(history)