Q1:mean值和scale值在哪找?

config_model.yml中需要填写MEAN和SCALE值,在哪找?

A1:找原python代码预处理部分

LPRNet仓库中,load_data.py里包含了前处理部分

Q2:如何验证前后处理是否是正确的

模型在板端跑完之后,发现板子输出结果是错的,我该怎样排查问题?

A2 :使用各端输出输入张量对齐的方式来排查

排查思路可排查以下图示:

仿真张量和python原始张量对齐

这一步主要是用于验证pc端config_model.yml有没有正确配置

  1. 仿真输入输出张量和python推理代码输出张量对齐

将PC端的float仿真输入张量,读进python代码中,重塑张量形状,替代python代码的输入张量,进行推理,用于验证后处理部分是否正确配置。

输出张量同理。

一般先验证输入张量。

  1. python原始张量和仿真张量做对比

在python推理代码中,保存输入输出张量,与仿真张量做对比,看误差大小。

仿真张量与板端张量对齐

这一步主要是用于验证前后处理的c++代码是否是正确的

1.仿真输入输出张量和板端模型输入输出张量对齐

将PC端的float仿真输出张量,读进C++代码中,重塑张量形状,替代python代码的输出张量进行推理,用于验证C++前处理代码是否正确,输入张量同理。一般先验证输出张量。

2.板端模型张量和仿真张量做对比

在板端C++推理代码中,保存输入输出张量,与仿真张量做对比,看误差大小。

Q3:如何修改config_model.yml文件来排查问题

经过Q2验证后,发现pc端config_model.yml没有正确配置,如何修改配置文件?

A3 控制变量,调整参数,按Q2:仿真张量和python原始张量对齐的方法进行排查

以下是一些参考思路:

  1. 1.修改mean和std值

  1. 2.开启前处理,关闭后处理,把获得的张量放到python模型推理代码中验证前处理是否正确

  1. 3开启后处理,关闭前处理,把获得的张量放到python模型推理代码中验证后处理是否正确

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐