为了账号安全,请及时绑定邮箱和手机立即绑定

如何在串联的keras模型中设置可训练的参数

如何在串联的keras模型中设置可训练的参数

Qyouu 2021-04-17 18:15:42
原始代码太过冗长,因此我将尝试用一个简化的例子来解释这个问题。首先,导入我们需要的库:import tensorflow as tffrom keras.applications.resnet50 import ResNet50from keras.models import Modelfrom keras.layers import Dense, Input然后加载预先训练的模型并打印出摘要。model = ResNet50(weights='imagenet')model.summary()(我剪切了summary()函数的输出以节省一些空间。)现在,所有层参数都是可训练的。为了示例,我将一个可训练参数设置False为如下。model.get_layer('bn5c_branch2c').trainable = False目前,除bn5c_branch2c层外,所有其他层仍可训练。接下来,使用此原始模型创建一个新模型,但让它成为串联模型。in1 = Input(shape=(224, 224, 3), name="in1")in2 = Input(shape=(224, 224, 3), name="in2")out1 = model(in1)out2 = model(in2)new_model = Model(inputs=[in1, in2], outputs=[out1, out2])并再次打印摘要:new_model.summary()__________________________________________________________________________________________________Layer (type)                    Output Shape         Param #     Connected to                     Total params: 25,636,712Trainable params: 25,583,592Non-trainable params: 53,120__________________________________________________________________________________________________在这一点上,我已经失去了查看哪些层可训练和不可训练的能力,因为原始ResNet50模型的所有层现在都显示为一个层。如果我运行以下代码,它将给我True:new_model.get_layer('resnet50').trainable    # Returns True问题1)我确实在模型中将bn5c_branch2c层的可训练参数设置为False 。我可以假设即使在new_model中,bn5c_branch2c的可训练值仍然为False吗?问题2)如果上述问题的答案为是(意味着new_model中bn5c_branch2c层的可训练参数值仍然为False)...如果我以后保存了此new_model的体系结构和权重,然后再次加载它们以进行进一步训练这个new_model ...我可以相信bn5c_branch2c的可训练参数值将保持为False吗?
查看完整描述

1 回答

?
蛊毒传说

TA贡献1895条经验 获得超3个赞

注意:您可以使用.layers[idx]属性访问模型的图层,其中属性idx是模型中图层的索引(从零开始)。另外,如果您为图层设置了名称,则可以使用.get_layer(layer_name)方法访问它们。


A1)是的,您可以通过以下方式确认这一点:


print(new_model.layers[2].get_layer('bn5c_branch2c').trainable) # output: False

另外,您可以通过查看模型摘要中不可训练参数的数量来确认这一点。


A2)是的,您可以通过以下方式确认这一点:


# save it

new_model.save('my_new_model.hd5')


# load it again

new_model = load_model('my_new_model.hd5')


print(new_model.layers[2].get_layer('bn5c_branch2c').trainable) # output: False


查看完整回答
反对 回复 2021-04-27
  • 1 回答
  • 0 关注
  • 298 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信