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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章