๊ณผ์ ํฉ์ ํผํ๋ 5๊ฐ์ง
๋ฐ์ดํฐ์ฆ๊ฐ, ์กฐ๊ธฐ ํ์ต ์ข
๋ฃ, ๋ฐฐ์น ์ ๊ทํ, ๊ท์ : dropout, ๊ท์ : ๊ฐ์ค์น ๊ท์
5๊ฐ์ง๋ฅผ ๋ฐฐ์ ๋ค.
์ด๋ฅผ ํ์ฉํด์ ๊ฐ์ฅ ์ข์ "๋ชจ๋ธ"์ ๋ง๋ค์ด๋ณด์.
# ๋ฐ์ดํฐ ์
๋ ฅ
from google.colab import files
uploaded = files.upload()
my_data = 'wine.csv'
import tensorflow as tf
import pandas as pd
import numpy
import os
from keras.models import Sequential
from keras.layers import Dense
from keras.callbacks import ModelCheckpoint
# seed ๊ฐ ๊ณ ์
numpy.random.seed(3)
tf.random.set_seed(3)
# ๋ฐ์ดํฐ ์ฝ๊ธฐ
df_pre = pd.read_csv(my_data, header=None)
df = df_pre.sample(frac=1)
dataset = df.values
X = dataset[: ,0:12]
Y = dataset[:, 12]
# ๋ชจ๋ธ ์ค์
model = Sequential()
model.add(Dense(30, input_dim=12, activation='relu'))
model.add(Dense(12, activation='relu'))
model.add(Dense(8, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
# ๋ชจ๋ธ ์ปดํ์ผ
model.compile(loss='binary_crossentropyโ, optimizer='adam',
metrics=['accuracy'])
# ๋ชจ๋ธ ์ ์ฅ ํด๋ ์ ํ
MODEL_DIR = './model/'
if not os.path.exists(MODEL_DIR):
os.mkdir(MODEL_DIR)
# ๋ชจ๋ธ์ ์ ์ฅ ์กฐ๊ฑด ์ค์
modelpath="./model/{epoch:02d}-{val_loss:.4f}.hdf5"
checkpointer = ModelCheckpoint(filepath=modelpath, monitor='val_loss',
verbose=1, save_best_only=True)
# ๋ชจ๋ธ ํ์ต ๋ฐ ์ ์ฅ
model.fit(X, Y, validation_split=0.2, epochs=200, batch_size=200,
verbose=0, callbacks=[checkpointer])
from keras.callbacks import EarlyStopping
early_stopping_callback = EarlyStopping(monitor = 'val_lossโ,
mode = 'autoโ,
verbose = 0,
restore_best_weights = False,
patience = 100)