首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Keras中合并多个模型(tensorflow)

在Keras中合并多个模型(tensorflow)
EN

Stack Overflow用户
提问于 2021-07-11 02:25:42
回答 1查看 316关注 0票数 1

在做了很多努力之后,这里是我的问题,

我有两个模型,两个模型都可以检测到2-2个类。正如我们所知道的,我们可以使用FunctionalAPI合并两个模型。我试过了,但是我没有得到想要的结果。

我的目标:我想合并这些模型,更新后的模型应该有(1个输入,4个输出)。

代码语言:javascript
复制
inputs = tf.keras.Input(shape=(50,50,1))
y_1 = f1_Model(inputs)
y_2 = f2(inputs)
outputs = tf.concat([y_1, y_2], axis=0)
new_model = keras.Model(inputs, outputs)
new_model.summary()
代码语言:javascript
复制
Model: "functional_5"
__________________________________________________________________________________________________
Layer (type)                    Output Shape         Param #     Connected to                     
==================================================================================================
input_2 (InputLayer)            [(None, 50, 50, 1)]  0                                            
__________________________________________________________________________________________________
sequential (Sequential)         (None, 2)            203874      input_2[0][0]                    
__________________________________________________________________________________________________
sequential_1 (Sequential)       (None, 2)            203874      input_2[0][0]                    
__________________________________________________________________________________________________
tf_op_layer_concat (TensorFlowO [(None, 2)]          0           sequential[1][0]                 
                                                                 sequential_1[1][0]               
==================================================================================================
Total params: 407,748
Trainable params: 407,748
Non-trainable params: 0
__________________________________________________________________________________________________

当我在其中传递一个图像时,它给出了错误的结果。我不知道我哪里错了。

代码语言:javascript
复制
prediction = new_model.predict([prepare(img)]) 
prediction

# index_pred=np.argmax(prediction) (this should return from 0 to 3, but not happening)
 

array([[1., 0.],
       [1., 0.]], dtype=float32)
EN

回答 1

Stack Overflow用户

发布于 2021-07-11 17:56:19

据我所知,你想要分类4类,为此,你有2个模型,每个分类2类。

到目前为止,您的f1和f2模型输出的是softmax activation的结果,所以首先,您必须删除它并仅输出logit或relu activation。之后,如@dmg2所述,您必须在tf.concat中设置axis=1。最后,您必须通过一个新的softmax激活来传递输出。在那之后,我希望你能训练你的模型。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68330534

复制
相关文章

相似问题

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