728x90
keras layer를 통해 모델의 layer를 직접 정의해서 사용할 수 있다.
아래 코드 처럼
from keras.layers import Dropout, Flatten, Dense
from keras.models import Model, Sequential
from keras.layers import Dense, GlobalAveragePooling2D
model = Sequential()
model.add(Conv2D(64, kernel_size=(3, 3), input_shape=INPUT_SHAPE, padding='VALID'))
model.add(Conv2D(64, kernel_size=(3, 3), padding='VALID'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(128, kernel_size=(3, 3), strides=1, activation='relu', padding='VALID'))
model.add(Conv2D(128, kernel_size=(3, 3), strides=1, activation='relu', padding='VALID'))
model.add(AveragePooling2D(pool_size=(19, 19)))
model.add(Flatten())
model.summary()
이미 검증 된 모델을 사용하는 방법도 있다.
keras applications에서 제공하는 모델을 사용하는 것이다.
나는 이 모델 중 EfficientNetB3를 사용하여 임베딩하려 한다.
from keras.applications import EfficientNetB3
model = EfficientNetB3(
include_top=True,
weights=None,
input_shape=(224, 224, 3),
)
model.compile(optimizer="adam", loss="categorical_crossentropy", metrics=["accuracy"])
model.summary()
728x90