我正在使用经过训练的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输出的代码中找到这样的张量名称。
答案 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。因此,您不能简单地将输出向量的元素的原始值作为置信度。