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

 

+ Recent posts