提问者:小点点

Tensorflow:确定预训练CNN模型的输出步幅


我已经下载并使用Tensorflow Lite Posenet模型实现了一个ML应用程序。这个模型的输出是一个热图,这是CNN的“我是新来的”的一部分。

处理输出所需的一条信息是“输出步长”。它用于计算原始图像中关键点的原始坐标。

keypointPositions=heatmapPositions*outputThree-offsetVectors

但文档未指定输出步幅。张量流中是否有可用的信息或方法可用于获取此(任何)预训练模型的输出步幅?

    < Li > img的输入形状为:< code>(257,257,3) < li >输出形状为:< code>(9,9,17)(17个不同关键点的1 [9x9]热图)
import tensorflow as tf
import numpy as np
import json

model = tf.lite.Interpreter('models\posenet_mobilenet_v1_100_257x257_multi_kpt_stripped.tflite')
model.allocate_tensors()

with open('model_details.json', 'w') as outfile:
     info = dict(list(enumerate(model.get_tensor_details())))
     s = json.dumps(str(info))
     outfile.write(s)

共1个答案

匿名用户

输出步幅可通过以下等式获得:

分辨率=((InputImageSize-1)/OutputStride)1

示例:宽度为225像素且输出步幅为16的输入图像导致输出大小为15

15=((225-1)/16)1

对于 tflite PoseNet 模型(分辨率为 9):

9=((257-1)/x)1x=32所以输出步幅为32

来源