-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
推理时间&分离模型&量化后的AP&模型的输出结果格式 #6
Comments
@mzxxyg 对于第一点,ARMCC会比GCC多大约50%的时间,比如256x256在使用ARMCC编译器的情况下是360ms左右,使用GCC编译器的情况下是230ms左右。对于你的在192x192分辨率下推理一遍需要700+ms,你首先需要检查是否使用了外部内存SDRAM。如果使用了,并且允许ZI段编译在外部内存,则你需要确保ai_model.c文件中的全局变量在SRAM中初始化,而不是在SDRAM中初始化,这两种内存速度差异很大,外部内存会降低推理速度,同时也要保证栈是在SRAM中的。其次你需要检查是否开启了一级缓存,即Dcache和Icache,如果没有开启推理速度会慢很多。X-CUBE-AI提供的推理库会进行CRC校验,如果不是使用STM32的板子,除非CRC寄存器地址和用法一样,不然推理库会初始化失败。恰好GD32H7,GD32F4,STM32F4的CRC寄存器地址是一样的,所以使用的是CM4,而CM7是用不了的,但是至少目前看来用CM4是正常的。 |
好的 ,多谢大佬,等我考完试仔细研究下您说的关于内存的事。另外关于ARMCC切换为GCC的过程,我在海棠派的例程上和GD32H759I_EVAL的例程上直接切换编译器,keil会直接崩掉闪退,请问我这么操作是不是不太对? |
|
试了一下 还是会闪退 我回来再仔细研究下怎么切换 看看我是不是有地方没有改 多谢大佬 |
## 作者大大,您好,想请教几个问题,不好意思哈问题有点多。
Q1
复现过了您github里面训练好的模型,直接用的下图文件夹里面的Edge_AI文件夹里面的东西,下载到GD32H757的板子里推理时间却需要700+ms,原始图片也是320240,模型输入192192,我是哪里没注意到么?有什么关键点会影响到这个推理时间吗?ARMCC和GCC会带来那么大的区别吗?CK_AHB,CK_APB1,CK_APB2,CK_SYS这几个频率是跟您的一样的。
H7的芯片用CM4的会有什么影响吗?
Q2
分离模型的两个参数separation和separation_scale的作用是什么呢?看您文章里说分离模型会降低精度,所以我们在训练的时候做了一点修改,train.py没有用到separation和separation_scale参数(如下图),.data文件里直接删除了separation、separation_scale、conf_thr=0.001,nms_thr=0.5,iou_thr=0.4。因为我们自身的模型本身精度不高,所以不想牺牲精度,不用分离模型,但是我们这么直接改是不是有问题呢?
Q3
我们用自己的数据集跑出来之后,AP大概为0.6,但是运行deploy.py量化之后AP变成了0.1,小目标检测,(此时.data里面没有separation、separation_scale、conf_thr=0.001,nms_thr=0.5,iou_thr=0.4这些参数)降的有点太多了,您遇到过类似问题嘛?请问您知道改哪里可以让它不降那么多么?跟分离模型有关系吗?
Q4
这个cubeAI最后给出的输出结果是什么格式的呢?跟什么有关呢?是CubeAi官方固定的输出格式还是跟模型训练的配置有关?.data文件不配置separation和separation_scale参数,生成的C代码就一个network1,您下面这个处理函数是不是只是针对带有分离模型的?所以想重新处理模型的输出,应该怎么解读最原始的输出呢?另外,图中您这个处理函数的逻辑是什么?经过您这个函数,处理后reg,reg+1,reg+2,reg+3里面是不是目标框的X,Y,W,H么?cls_index是通过什么逻辑得出来?恳请指教
红框的逻辑都没看太懂
不好意思大佬,问的问题有点多,恳请指教,谢谢作者大大!
The text was updated successfully, but these errors were encountered: