Keras报错解决:ValueError: Graph disconnected: cannot obtain value for tensor Tensor


问题描述:

今天在合并多个Keras model时,遇到错误,记录一下解决方法。


抛出错误:

ValueError: Graph disconnected: cannot obtain value for tensor Tensor(“input_14:0”, shape=(None, 24, 9, 1), dtype=float32) at layer “input_14”. The following previous layers were accessed without issue: []


原因分析:

查找资料,发现错误原因有三类:

  1. 变量名重用:参考这篇文章
  2. 调用模型直接合并错误:参考这个回答
  3. 重建Model时,模型的inputs参数输入不全:参考这个issue

解决方法:

经排查,我遇到的问题属于第3种,解决方法如下:
完整代码:

def mvcnn_model():
'''
down,up,left,right 为 keras model
'''
    n_classes = 2
    data = Input(shape=(24,9,1), name='inps')
    down_out = down.output
    up_out = up.output
    left_out = left.output
    right_out = right.output
    
    down_in = down.input
    up_in = up.input
    left_in = left.input
    right_in = right.input

    merged = concatenate([down_out, up_out, left_out, right_out, data], axis=-1)
    model = Model(inputs=data, outputs=merged)
    return model

出错语句:

  model = Model(inputs=data, outputs=merged)

解决方法:

model = Model(inputs=[down_in, up_in, left_in, right_in, data], outputs=dense4)
发布了176 篇原创文章 · 获赞 694 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/weixin_39653948/article/details/105661155