정리하기/CNN

Efficientnet 예제

디리릭 2024. 7. 17. 22:38
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

'정리하기 > CNN' 카테고리의 다른 글

CNN 모델  (0) 2022.10.26