如何解决如何在集成模型中实现 Grad-CAM
我是深度学习的新手,真的需要一些帮助! 我有一个集成了 DenseNet 和逻辑回归的模型。我想从 DenseNet 分支获取 Grad-CAM,我应该如何正确实现它? 我尝试按照 keras 的教程进行操作,但坚持在第一步移除原始模型的最后一层
grad_model = Model(inputs=[mlp.input,cnn.input],outputs=[model.get_layer('dense_16').output,model.output])
显示错误信息:
图断开:无法获取张量值 KerasTensor(type_spec=TensorSpec(shape=(None,224,3),dtype=tf.float32,name='input_18'),name='input_18',description="created by layer 'input_18'") 在层“densenet121”。这 以下之前的层可以正常访问:[]
我应该如何做对?
这是完整的模型:
def Dense_model():
base_model = tf.keras.applications.DenseNet121(
weights= 'imagenet',input_shape=(224,include_top=False)
base_model.trainable = True
inputs = Input(shape=(224,3))
x = base_model(inputs,training=True)
x = tf.keras.layers.GlobalAveragePooling2D()(x)
outputs = Dense(25,activation='relu')(x)
model = Model(inputs,outputs)
return model
def create_mlp():
model = Sequential()
model.add(Dense(85,input_dim=85,activation="sigmoid"))
return model
def fusion_model():
mlp = create_mlp()
cnn = Dense_model()
combinedInput = concatenate([mlp.output,cnn.output])
x = Dense(2,activation="softmax")(combinedInput)
model = Model(inputs=[mlp.input,outputs=x)
return model
model = fusion_model()
model.summary()
grad_model = Model(inputs=[mlp.input,model.output])
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。