为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕无忌1623718 2023-07-18 16:57:13
我编写了类似于此代码的架构: 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: []知道为什么吗?
查看完整描述

1 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

构建模型时注意正确定义输入层


他们是inputs=[sentence_encoding_input, visual_features_input, et_features_input]又不是inputs=[sentence_features, visual_features, et_features]


这是完整的模型


from tensorflow import keras

from tensorflow.keras import layers


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_encoding_input, visual_features_input, et_features_input],

  outputs=[group_pred]

  # outputs=[group_pred, score_pred],

)


hybrid_model.summary()


查看完整回答
反对 回复 2023-07-18
  • 1 回答
  • 0 关注
  • 141 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信