首页 > 解决方案 > 运行模型的一部分最简单的方法是什么?

问题描述

我正在处理 Keras 功能 API。特别是对于我的实验,我使用的是通过以下方式获得的 Keras resnet50 模型:

model = resnet50.ResNet50(weights='imagenet')

显然,要获得网络的最终输出,我们需要向占位符提供一个值input_1

我的问题是,如果我relu将适当尺寸的值输入其中,我能否以某种方式从下图底部描绘的图层开始推断该图?

我试图用 Keras 来实现这一点functions。就像是:

self.inp = model.input
self.outputs = [layer.output for layer in model.layers]
self.functor = K.function([self.inp, K.learning_phase()], [self.outputs[6], self.outputs[17]])

但是这种方法行不通,因为要再次推断任何输出,我需要将值输入张量。

从头开始重新创建图表是我最好的选择吗?

谢谢

网络的输入是 input_1。 感兴趣的层是底部的Relu

标签: tensorflowkeras

解决方案


如果我没听错,您可以指定输入和输出节点

base_model = tf.keras.applications.ResNet50(weights='imagenet')
inference_model = tf.keras.Model(inputs=base_model.input, outputs=base_model.get_layer('any_layer_name').output)

您可以将输出设置为任何图层名称


推荐阅读