Alex Blog

[DFC]怎么使用DFC将模型转成single context的hailo模型

Single Context模型条件

对于能够转换为single context的模型,粗略的条件如下:

  • 整个模型的层次应该少于100个LCUs(通常表示100个layer)。
  • 模型的权重应该小于25MB。

这两个条件必须同时满足。

示例:

其中一种情况是有很少参数但有很多layer的情况。例如,某客户有一个fdr模型,参数很少但层数很大,大约有200-300个卷积层。

大多数情况下,我们会遇到权重过多的问题或两者兼而有之。

操作方法:

    1. 使用压缩级别使其成为single context。如果问题仅在于权重。
    2. 有时,我们可能需要使用utilization来使其成为single context,如下类似:
      context_switch_param(mode=disabled)
      resources_param(max_control_utilization=0.9, max_compute_utilization=0.9, max_memory_utilization=0.9)
    3. 如果模型输入层的宽度大于高度(1,3,256,704),我们还可以尝试“transpose”。
    4. 如果在编译日志(hailo_sdk.core.log)中出现错误,例如:在ew_add3和conv13之间无法解决大缓冲的问题,可以尝试将其添加到ddr:
      ddr_1 = ddr(ew_add3, conv13)
    5. 自己进行了“性能”调整,提高了resources_param并调整了合并利用率allocator_param(merge_min_layer_utilization=0.7),直到正确运行。
      此值调节的影响:
      a. 合并利用率过高:合并不足

      b. 合并利用率过低:自动合并时间过长

      c. 资源参数过低:低帧率

      d. 资源参数过高:分配器超时

 

 


已发布

分类

,

来自

标签:

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注