首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >定制转移学习模型tensorflow-Keras

定制转移学习模型tensorflow-Keras
EN

Stack Overflow用户
提问于 2021-03-04 11:25:44
回答 2查看 133关注 0票数 1

我试图在下面提到的传输学习代码中添加conv层。但不知道该怎么做。我想在下面提到的迁移学习代码中添加conv, max-pooling, 3x3 filter and stride 3 and activation mode ReLUconv, max-pooling, 3x3 filter and stride 3 and activation mode LReLU。告诉我是否有可能,如果有,怎么做?

代码语言:javascript
复制
 CLASSES = 2
 
# setup model
base_model = MobileNet(weights='imagenet', include_top=False)
 
x = base_model.output
x = GlobalAveragePooling2D(name='avg_pool')(x)
x = Dropout(0.4)(x)
predictions = Dense(CLASSES, activation='softmax')(x)
model = Model(inputs=base_model.input, outputs=predictions)
 
# transfer learning
for layer in base_model.layers:
 layer.trainable = False
 
model.compile(optimizer='rmsprop',
 loss='categorical_crossentropy',
 metrics=['accuracy'])
 
"""##Data augmentation"""
 
# data prep

"""
## Transfer learning
"""
 
from tensorflow.keras.callbacks import ModelCheckpoint
filepath="mobilenet/my_model.hdf5"
checkpoint = ModelCheckpoint(filepath, monitor='val_accuracy', verbose=1, save_best_only=True, mode='max')
callbacks_list = [checkpoint]
 
EPOCHS = 1
BATCH_SIZE = 32
STEPS_PER_EPOCH = 5
VALIDATION_STEPS = 32
 
MODEL_FILE = 'mobilenet/filename.model'
 
history = model.fit_generator(
 train_generator,
 epochs=EPOCHS,
 steps_per_epoch=STEPS_PER_EPOCH,
 validation_data=validation_generator,
 validation_steps=VALIDATION_STEPS,
 callbacks=callbacks_list)
 
model.save(MODEL_FILE)
backup_model = model
model.summary()
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-03-04 11:31:54

你可以有几种方法,其中之一是:

代码语言:javascript
复制
model = Sequential([
    base_model,
    GlobalAveragePooling2D(name='avg_pool'),
    Dropout(0.4),
    Conv(...), # the layers you would like to add for the base model
    MaxPool(...),
    ...
])

model.compile(...)
票数 1
EN

Stack Overflow用户

发布于 2021-03-04 16:00:47

我想这就是你想要的

代码语言:javascript
复制
CLASSES=2
new_filters=256 # specify the number of filter you want in the added convolutional layer
img_shape=(224,224,3)
base_model=tf.keras.applications.mobilenet.MobileNet( include_top=False, input_shape=img_shape,  weights='imagenet',dropout=.4) 
x=base_model.output
x= Conv2D(new_filters, 3, padding='same', strides= (3,3), activation='relu', name='added')(x)
x= GlobalAveragePooling2D(name='avg_pool')(x)
x= Dropout(0.4)(x)
predictions= Dense(CLASSES, activation='softmax', name='output')(x)

model=Model(inputs=base_model.input, outputs=predictions)
model.summary()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66474061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档