2024.02.14
VGG 모델
CNN 구조를 가지는 VGG 모델 적용
실습
VGG16 관련 모델 논문을 참고하여 Fashion-MNIST 셋에 맞추어 튜닝
model_vgg_fshion= tf.keras.Sequential([
# 원본 입력 : 224 224 RGB ===> 28, 28, 1
Conv2D(input_shape=(28,28,1),kernel_size=(3,3),
filters=64, padding="same", activation="relu" ),
Conv2D(kernel_size=(3,3),filters=64, padding="same", activation="relu"),
MaxPool2D(pool_size = (2,2), strides=(2,2)),
Conv2D(kernel_size=(3,3), filters=128, padding="same", activation="relu"),
Conv2D(kernel_size=(3,3), filters=128, padding="same", activation="relu"),
MaxPool2D(pool_size = (2,2), strides=(2,2)),
Conv2D(kernel_size=(3,3), filters=256, padding="same", activation="relu"),
Conv2D(kernel_size=(3,3), filters=256, padding="same", activation="relu"),
Conv2D(kernel_size=(3,3), filters=256, padding="same", activation="relu"),
MaxPool2D(pool_size = (2,2), strides=(2,2)),
# 분류를 위한 FNN
# 1) 특징에 대한 Flatten작업
Flatten(),
# 2) 분류용 HL
Dense( units=4096, activation="relu"),
Dense( units=4096, activation="relu"),
# 3) 출력용 ==> 10종류
Dense(units=10, activation="softmax"),
])
model_vgg_fshion.summary()
#----------------------------------------------------------#
# callback 적용
import os
cp_path = "training/cp-{epoch:04d}.ckpt"
cp_dir = os.path.dirname(cp_path)
cp_callback = tf.keras.callbacks.ModelCheckpoint(
cp_path,
verbose = 1,
save_weights_only = True
)
es_callback = tf.keras.callbacks.EarlyStopping(
monitor = "val_loss",
patience = 10
)
#----------------------------------------------------------#
model_vgg_fshion.compile(
optimizer = tf.keras.optimizers.Adam(),
loss = "sparse_categorical_crossentropy",
metrics = ["accuracy"]
)
model_vgg_fshion.fit(train_X, train_y,
epochs=100,
validation_split=0.25,
batch_size = 1024,
callbacks=[cp_callback,es_callback ]
)'ASAC 빅데이터전문가과정 > DL' 카테고리의 다른 글
| ASAC 54일차_딥러닝 8일차 (0) | 2024.09.04 |
|---|---|
| ASAC 52일차_딥러닝 7일차 (0) | 2024.09.02 |
| ASAC 50일차_딥러닝 5일차 (0) | 2024.09.02 |
| ASAC 49일차_딥러닝 4일차 (1) | 2024.09.02 |
| ASAC 47일차_딥러닝 3일차 (0) | 2024.09.02 |