keras多模型加载

        最近在作两个网络的整合工作,想着能不能用keras中的load_weights()函数来实现两次加载不同的预训练好的网络权重,最终发现是能够实现这样的操作的,只要保证你需要整合的最终网络中各层的名字与两个网络种的各层名字是保持一致的,则可以通过两次的load_weights(model_weights_path,  by_name = True)调用,从而加载好了预训练好的两个模型。之后再进行微调或者迁移学习。

        以前也纠结过一段时间,就是基于CNN的框架对于不同图片大小的输入时是否可以直接使用别人训练好的weights,找了一段时间网上的资料,好像没有关于这方面的讲解。后来自己想了想,其实是一个很简单的问题,CNN中的weights本身就和输入的大小无关,只和kernel_size,filter_num,channel_num这三个参数有关,所以不同大小的输入是可以加载的。但是后面可能会出现其他的问题,这个就需要自己斟酌斟酌了。

        

model = ShuffleNet(include_top=True, input_shape=(width,height,3),classes = 100, groups=3, pooling='avg')
model.summary()
model.load_weights(model1_weights_path, by_name = True)
model.load_weights(model2_weights_path, by_name = True)




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值