从deeplab模型获取输出的Logits

时间:2019-04-08 04:54:43

标签: tensorflow softmax deeplab logits

我正在使用经过训练的deeplab模型(来自here)来获取输入图像的分割。我能够获取应用于logits(link)的argmax的语义标签(即SemanticPredictions)。

我想知道是否有一种简单的方法来获取argmax之前的登录信息?我希望找到输出张量名称并将其简单地传递给我的tfsession 如下所示:

tf_session.run(
        self.OUTPUT_TENSOR_NAME,
        feed_dict={self.INPUT_TENSOR_NAME: [np.asarray(input_image)]})

但是我无法在显示logit或softmax输出的代码中找到这样的张量名称。

1 个答案:

答案 0 :(得分:0)

对于通过MobileNet_V2训练的模型,设置self.OUTPUT_TENSOR_NAME = 'ResizeBilinear_2:0'会在执行argmax之前检索对数。

我怀疑这与xception相同,但尚未验证。

我通过在tensorflow中加载我的模型得出了这个答案。然后,在加载的图中打印所有图层的名称。最后,我在最后一个“ ArgMax”层之前使用了最终输出层的名称,并使用该名称进行了一些推断。

Here is a link to a stackoverflow question on printing the names of the layers in a graph. 我发现Ted的回答最有帮助。

顺便说一句,DeeplabV3模型的输出层不应用SoftMax。因此,您不能简单地将输出向量的元素的原始值作为置信度。