keras 拼接两个函数api 为修改backbone并且使用其权重做准备

本文介绍如何在Keras中正确拼接两个模型,重点解释了不能直接使用一个模型的输出作为另一个模型输入的原因,并提供了避免UserWarning的解决方法。通过使用Input定义模型起点,将已有的模型作为函数处理输入,可以实现模型的灵活组合。
摘要由CSDN通过智能技术生成

这个代码网络是model2,他用了我之前写的model_mine的网络结构。

 

from keras.models import Model
from keras.layers import Input, Dense, Lambda,add

a = Input(shape=(640, 480, 3))
b = Input(shape=(23,))
c = Input(shape=(54,))
d = Dense(32)(b)
multi = Lambda(lambda x: x**3)
e = multi(c)

model_mine = Model(inputs=[a, b, c], outputs=[d, e])
in1 = Input(shape=(23,))
in2 = Input(shape=(128,))
#compile(optimizer, loss=None, metrics=None, loss_weights=None, sample_weight_mode=None, weighted_metrics=None, target_tensors=None)
[out1, out2] = model_mine(inputs=[a, in1, in2])
lay23=Dense(32)(out2)

out3=add([out1, lay23])
model2 = Model(inputs=[a, in1, in2], outputs=[out3])
print('print model_mine structure')
model_mine.summary()
print('print model2 structure')
model2.summary()

输出是

print model_mine structure
__________________________________________________________________________________________________
Layer (type)                    Output Shape         Param #     Connected to                     
======================================================================
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值