๐Ÿš€ ๋”ฅ๋Ÿฌ๋‹ ์‹ค์Šต - Tensorflow ๋ชจ๋ธ ์„ค๊ณ„ํ•˜๊ธฐ (์™€์ธ๋ฐ์ดํ„ฐ๋กœ ๋ฒ ์ŠคํŠธ ๋ชจ๋ธ ๋งŒ๋“ค์–ด๋ณด๊ธฐ)

vincaยท2022๋…„ 12์›” 14์ผ
0

๐ŸŒ” AI/DL - Training

๋ชฉ๋ก ๋ณด๊ธฐ
3/5

Introduction

๊ณผ์ ํ•ฉ์„ ํ”ผํ•˜๋Š” 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])

๊ฒฐ๊ณผ

ํ•™์Šต ์ž๋™ ์ค‘๋‹จ(EarlyStopping ํ•จ์ˆ˜)

  • ํ•™์Šต์ด ์ง„ํ–‰๋ ์ˆ˜๋ก ํ•™์Šต ๋ฐ์ดํ„ฐ์˜ ์„ธํŠธ์˜ ์ •ํ™•๋„๋Š” ์˜ฌ๋ผ๊ฐ€๋‚˜ ๊ณผ์ ํ•ฉ์œผ๋กœ ์ธํ•ด ๊ฒ€์ฆ๋ฐ์ดํ„ฐ์˜ ๋ถ„๋ฅ˜ ์„ฑ๋Šฅ์€ ๋‚˜๋น ์ง์„ ๋ณด์ž„.
  • ํ•™์Šต์ด ์ง„ํ–‰๋˜์–ด๋„ ๊ฒ€์ • ๋ฐ์ดํ„ฐ์˜ ์˜ค์ฐจ๊ฐ€ ์ค„์–ด๋“ค์ง€ ์•Š์œผ๋ฉด ํ•ด๋‹น ํ•™์Šต์„ ์กฐ๊ธฐ ์ข…๋ฃŒ.
from keras.callbacks import EarlyStopping
early_stopping_callback = EarlyStopping(monitor = 'val_lossโ€™,
mode = 'autoโ€™, 
verbose = 0,
restore_best_weights = False,
patience = 100)

๊ฒฐ๊ณผ

profile
๋ถ‰์€ ๋ฐฐ ์˜ค์ƒ‰ ๋”ฑ๋‹ค๊ตฌ๋ฆฌ ๊ฐœ๋ฐœ์ž ๐ŸฆƒCloud & DevOps

0๊ฐœ์˜ ๋Œ“๊ธ€