상세 컨텐츠

본문 제목

Transfer Learning

coding/딥러닝

by golduny_zoo 2021. 3. 4. 18:07

본문

728x90
아주 좋은 인공지능 모델을 가지고 와서 쓰는 방법이다. 
 
만들어진 인공지능 모델(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

'coding > 딥러닝' 카테고리의 다른 글

페이스북 Prophet  (0) 2021.03.26
이미지 증강  (0) 2021.03.15
이미지 제너레이터  (0) 2021.03.03
accuracy 시각화  (0) 2021.03.02
콜백 함수  (0) 2021.03.02

관련글 더보기