아주 좋은 인공지능 모델을 가지고 와서 쓰는 방법이다.
만들어진 인공지능 모델(base model)을 내가 만드는(head model)에 붙이는 방식
# ------------ base model ------------
from tensorflow.keras.applications import MobileNetV2
base_model = MobileNetV2(input_shape=IMG_SHAPE,
include_top=False, #1
weights="imagenet") #2
base_model.trainable = False
#1 False :CNN만 가져올지 True: DNN까지 가져올지
#2 가중치 가져오기
#3 # trainable : 학습할 수 있게 할 것인지 ( 이미 모델안에 가중치가 최적화되어 가져오기 때문에 학습을 시킬 필요가 없다. )
# ------------ head model -------------
headModel = baseModel.output #1
headModel = AveragePooling2D((4,4))(headModel)
headModel = Flatten()(headModel)
headModel = Dense(128, activation='relu')(headModel)
headModel = BatchNormalization()(headModel) #2
headModel = Dense(64,activation='relu')(headModel)
headModel = Dropout(0.5)(headModel)
headModel = BatchNormalization()(headModel)
headModel = Dense(7,activation='softmax')(headModel) #3
#1 base model에서 나오는 아웃풋을 인풋으로 가져오는 방법
#2 오버피팅을 방지하는 레이어
#3 아웃레이어
# -------------- 붙여넣기 --------------
model =Model(inputs= baseModel.input, outputs= headModel )
|
cs |
페이스북 Prophet (0) | 2021.03.26 |
---|---|
이미지 증강 (0) | 2021.03.15 |
이미지 제너레이터 (0) | 2021.03.03 |
accuracy 시각화 (0) | 2021.03.02 |
콜백 함수 (0) | 2021.03.02 |