"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)