1. 필요한 패키지, 라이브러리
from tensorflow.keras.applications.vgg16 import VGG16
from tensorflow.keras.layers import Dense, GlobalAveragePooling2D
from tensorflow.keras.models import Sequential
from tensorflow.keras.datasets import cifar10
from sklearn.model_selection import train_test_split
import numpy as np
import tensorflow as tf
2. train/test data
X_train, y_train, X_test, y_test
3. 이미지 정규화
X_train = X_train.astype('float32') / 255.
X_test = X_test.astype('float32') / 255.
4. 사전학습모델 불러오기(optional)
pretrained_model = VGG16(weights='imagenet', include_top=False)
5. 모델 제작
model = Sequential()
model.add(pretrained_model)
model.add(GlobalAveragePooling2D())
model.add(Dense(128,activation='relu'))
model.add(Dense(10,activation='softmax'))
6. 모델 compile
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
7. 모델 fit
from keras.callbacks import EarlyStopping
early_stopping = EarlyStopping(monitor = 'val_loss', min_delta = 0, patience = 5, mode = 'auto')
model.fit(
X_train, y_train,
batch_size=32,
validation_data=(X_val, y_val),
epochs=500,
callbacks = early_stopping
)
8. 모델 평가
model.evaluate(X_test, y_test, verbose=2)