【发布时间】:2021-05-27 09:51:19
【问题描述】:
我正在使用这样的预训练模型:
base_model = keras.applications.Xception(
weights='imagenet',
input_shape=(150,150,3),
include_top=False
)
然后我冻结所有层:
base_model.trainable = False
现在,我只想解冻,比如说最底层。
当我做base_model.summary() 时,底部是这样的:
所以,假设我想解冻block14_sepconv2 层。
我愿意:
my_layer = base_model.get_layer('block14_sepconv2')
my_layer.trainable = True
summary() 仍然显示,Trainable params: 0
我做错了什么?如何只解冻几个最低层?
有趣的是,当我第一次做base_model.trainable = True,然后我从顶部冻结层时,可训练的参数数量实际上发生了变化。但它对我来说并不直观,主要不是不可理解。
【问题讨论】:
标签: tensorflow keras deep-learning neural-network conv-neural-network