1. tensorflow์ ๋ด์ฅ๋ fashion mnist ๋ฐ์ดํฐ ๋ก๋ํ๊ธฐ
- fashion mnst๋ 32*32 greyscale(channel ์ = 1) 70,000์ฅ์ ์ด๋ฏธ์ง ๋ฐ์ดํฐ์
- 10๊ฐ์ class์ ๋ํ ์ฌ์ง ์กด์ฌ
import tensorflow as tf
mnist = tf.keras.datasets.fashion_mnist
(train_X, train_y), (test_X, test_y) = mnist.load_data()
# preprocessing
train_X = train_X / 255.0
test_X = test_X / 255.0
2. ๋ชจ๋ธ ์์ฑ
model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dense(10, activation='softmax')
])
3. ๋ชจ๋ธ ์ปดํ์ผ
model.compile(loss='sparse_categorical_crossentropy', optimizer='adam', metrics=['acc'])
4. ํ์ต (training)
model.fit(train_X, train_y, epochs=5)
์ถ๊ฐ) callbacks ์ฌ์ฉ
# example1. loss ๊ธฐ์ค early stopping
class Callback(tf.keras.callbacks.Callback):
def on_epoch_end(self, epoch, logs={}):
if(logs.get('loss')<0.4):
print("!")
self.model.stop_training = True
# example2. accuracy ๊ธฐ์ค early stopping
class Callback(tf.keras.callbacks.Callback):
def on_epoch_end(self, epoch, logs={}):
if(logs.get('acc')>=0.99):
print("!")
self.model.stop_training = True
# use callback
callbacks = Callback()
model.fit(train_X, train_y, epochs=5, callbacks=[callbacks])
fit ํ ๋ callbacks argument์ ์์ฑ๋ ๊ฐ์ฒด๋ฅผ ์ ๋ฌํด์ฃผ๋ฉด ๋ฉ๋๋ค.
+) callback ์ฐธ๊ณ
www.tensorflow.org/guide/keras/custom_callback
์์ ๋ง์ ์ฝ๋ฐฑ ์์ฑ | TensorFlow Core
์๊ฐ ์ฝ๋ฐฑ์ ํ์ต, ํ๊ฐ ๋๋ ์ถ๋ก ์ค์ Keras ๋ชจ๋ธ์ ๋์์ ์ฌ์ฉ์ ์ง์ ํ๋ ๊ฐ๋ ฅํ ๋๊ตฌ์ ๋๋ค. ์๋ฅผ ๋ค์ด tf.keras.callbacks.TensorBoard ๋ฅผ ์ฌ์ฉํ์ฌ ํ์ต ์งํ ์ํฉ ๋ฐ ๊ฒฐ๊ณผ๋ฅผ ์๊ฐํํ๋ tf.keras.callb
www.tensorflow.org