高通SNPE - 基准测试概述(4)

MobilenetSSD基准测试

SNPE SDK支持Tensorflow版本和Caffe版本的MobilenetSSD模型。有关更多详细信息,请参见使用MobilenetSSD。

对Mobilenet SSD进行基准测试需要对基准JSON配置文件以及数据输入列表进行一些补充。

请遵循基准测试概述,以熟悉基准测试工具。

我们假定您在以下示例文件中创建:

  • /tmp/mobilenetssd.dlc-转换后的神经网络模型文件
  • /tmp/mobilenetssd.json-基准配置文件
  • /tmp/imagelist.txt-原始图像路径列表(每行一个)
  • / tmp / images-包含在上面的imagelist.txt中指定的图像的目录

Mobilenet SSD基准测试配置文件包含与基准测试概述中定义的条目相同的条目,并带有一个附加参数。创建或编辑/tmp/mobilenetssd.json文件,并添加一行以指示已使用CpuFallback选项。为了使Mobilenet SSD基准能够正确执行,此选项是必需的。

JSON文件应类似于以下内容:

  {
    "Name":"mobilenet_ssd",
    "HostRootPath": "mobilenet_ssd",
    "HostResultsDir":"mobilenet_ssd/results",
    "DevicePath":"/data/local/tmp/snpebm",
    "Devices":["454d40f3"],
    "Runs":2,

    "Model": {
        "Name": "mobilenet_ssd",
        "Dlc": "/tmp/mobilenet_ssd.dlc",
        "InputList": "/tmp/imagelist.txt",
        "Data": [
            "/tmp/images"
        ]
    },

    "Runtimes":["GPU"],
    "Measurements": ["timing"],
    "CpuFallback": ["true"],
    "BufferTypes": ["ub_float","ub_tf8"]
  }

Tensorflow Mobilenet SSD模型

Tensorflow Mobilenet SSD具有多个输出层。为了在基准运行中准确表示输出,需要将其他输出指定为/tmp/imagelist.txt的一部分。

该模型的输出层是:

  • 后处理器/ BatchMultiClassNonMaxSuppression
  • add_6

将输出图层名称添加到图像列表文件(/tmp/imagelist.txt)的第一行,以“#”开头,​​并用空格分隔每个图层名称。例如:

  #Postprocessor/BatchMultiClassNonMaxSuppression add_6
  tmp/0#.rawtensor
  tmp/1#.rawtensor

注意:如果模型经过重新训练且输出层发生更改,则必须更新imagelist.txt中的第一行以反映这些更改。

Caffe Mobilenet SSD型号
Caffe Mobilenet SSD通常具有一层输出层(例如detection_out)。如果它具有多个输出层,则要在基准运行中准确表示输出,需要将其他输出指定为/tmp/imagelist.txt的一部分。

将输出图层名称添加到图像列表文件(/tmp/imagelist.txt)的第一行,以“#”开头,​​并用空格分隔每个图层名称。例如,

  #a/detection_out b/detection_out
  tmp/0#.rawtensor
  tmp/1#.rawtensor

运行基准

通过运行基准:

python3 snpe_bench.py -c /tmp/mobilenetssd.json -a

你可能感兴趣的:(SNPE)