猿问

无法理解:ValueError:图形已断开连接:无法获取张量张量的值

我编写了类似于此代码的架构: https ://keras.io/guides/function_api/#manipulate-complex-graph-topologie :

visual_features_input = keras.Input(

    shape=(1000,), name="Visual-Input-FM", dtype='float') 

  et_features_input = keras.Input(

      shape=(12,), name="ET-input", dtype='float') 

  sentence_encoding_input = keras.Input(

    shape=(784,), name="Sentence-Input-Encoding", dtype='float') 

    

  et_features = layers.Dense(units = 12, name = 'et_features')(et_features_input)

  visual_features = layers.Dense(units = 100, name = 'visual_features')(visual_features_input)

  sentence_features = layers.Dense(units = 60, name = 'sentence_features')(sentence_encoding_input)


  x = layers.concatenate([sentence_features, visual_features, et_features], name = 'hybrid-concatenation')


  score_pred = layers.Dense(units = 1, name = "score")(x)

  group_pred = layers.Dense(units = 5, name="group")(x)

  

  # Instantiate an end-to-end model predicting both score and group

  hybrid_model = keras.Model(

      inputs=[sentence_features, visual_features, et_features],

      outputs=[group_pred]

      # outputs=[group_pred, score_pred],

  )

但我收到错误:


ValueError: Graph disconnected: cannot obtain value for tensor Tensor("Sentence-Input-Encoding_2:0", shape=(None, 784), dtype=float32) at layer "sentence_features". The following previous layers were accessed without issue: []

知道为什么吗?


慕无忌1623718
浏览 142回答 1
1回答

汪汪一只猫

构建模型时注意正确定义输入层他们是inputs=[sentence_encoding_input, visual_features_input, et_features_input]又不是inputs=[sentence_features, visual_features, et_features]这是完整的模型from tensorflow import kerasfrom tensorflow.keras import layersvisual_features_input = keras.Input(shape=(1000,), name="Visual-Input-FM", dtype='float') et_features_input = keras.Input(  shape=(12,), name="ET-input", dtype='float') sentence_encoding_input = keras.Input(shape=(784,), name="Sentence-Input-Encoding", dtype='float') et_features = layers.Dense(units = 12, name = 'et_features')(et_features_input)visual_features = layers.Dense(units = 100, name = 'visual_features')(visual_features_input)sentence_features = layers.Dense(units = 60, name = 'sentence_features')(sentence_encoding_input)x = layers.concatenate([sentence_features, visual_features, et_features], name = 'hybrid-concatenation')score_pred = layers.Dense(units = 1, name = "score")(x)group_pred = layers.Dense(units = 5, name="group")(x)# Instantiate an end-to-end model predicting both score and grouphybrid_model = keras.Model(  inputs=[sentence_encoding_input, visual_features_input, et_features_input],  outputs=[group_pred]  # outputs=[group_pred, score_pred],)hybrid_model.summary()
随时随地看视频慕课网APP

相关分类

Python
我要回答