Single Context模型条件
对于能够转换为single context的模型,粗略的条件如下:
- 整个模型的层次应该少于100个LCUs(通常表示100个layer)。
- 模型的权重应该小于25MB。
这两个条件必须同时满足。
示例:
其中一种情况是有很少参数但有很多layer的情况。例如,某客户有一个fdr模型,参数很少但层数很大,大约有200-300个卷积层。
大多数情况下,我们会遇到权重过多的问题或两者兼而有之。
操作方法:
-
- 使用压缩级别使其成为single context。如果问题仅在于权重。
- 有时,我们可能需要使用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)
- 如果模型输入层的宽度大于高度(1,3,256,704),我们还可以尝试“transpose”。
- 如果在编译日志(hailo_sdk.core.log)中出现错误,例如:在ew_add3和conv13之间无法解决大缓冲的问题,可以尝试将其添加到ddr:
ddr_1 = ddr(ew_add3, conv13) - 自己进行了“性能”调整,提高了resources_param并调整了合并利用率allocator_param(merge_min_layer_utilization=0.7),直到正确运行。
此值调节的影响:
a. 合并利用率过高:合并不足b. 合并利用率过低:自动合并时间过长
c. 资源参数过低:低帧率
d. 资源参数过高:分配器超时
发表回复