Closed xiangweizeng closed 1 year ago
Hi 你好,这边解答一下上面提到的问题。
测试代码段中的构造函数是用于Per-channel量化方式的,目前Per-channel量化只支持8bit量化。原因是16bit量化的误差已经很小了,所以并没有为16bit量化编写Per-channel量化的代码。你提到的另一个构造函数是Per-layer量化,它目前支持8bit和16bit两种量化位宽,所以不存在链接错误的问题。
本项目中的参数实际排布在不同平台上是不同的,对于没有指令加速的情况下,排布才是NHWC。关于 print2d_n 这个函数,目前是统一成了HWCN格式输出,后续会改为NHWC格式输出,方便理解。
写成模板函数是为了方便代码的复用,我们的大部分函数都编译成了静态库的形式。后续我们会在头文件中对支持的类型做更加详细的说明。
最后感谢你提出的问题和建议。
最近在尝试使用esp-dl库,并针对其进行了一些基本测试,发现如下问题:
链接错误: ··· undefined reference to `dl::Filter::Filter(short const*, std::vector<int, std::allocator >, std::vector<int, std::allocator >, std::vector<int, std::allocator >)'
···
补充:针对另一个构造函数没有出现链接错误
Filter print2d_n 函数打印数据与实际存储格式不符合 Filter 针对 Kernel 的数据存储实际采用的应该是 NHWC 格式,但是 print2d_n 打印数据采用的是HWCN格式
浏览发现头文件中包含了大量摸板函数,建议将摸板函数和头文件一起发布,或者采用非模板实现方式;
以上, 谢谢!