paddledetection/slim/quantization
Created by: justinmeibi
Q1:slim/quantization 下有train.py,eval.py,export_model.py,infer.py,yolo_v3_darknet 量化训练时,激活函数量化8bit ,采用moving_average_abs_max,权重量化7bit,采用channel_wise_abs_max。模型训练阶段评估指标为82%map。这时候的评估(82%map)是是否插入了fake_quan_max_abs?feature map 的量化参数和反量化番薯是固定在模型中了还是根据feature_map动态获取? Q2:如果将conv的input 和weight 采用量化后的int8做卷积,经过bn ,lrelu ,再乘以scale,将数据还原到8bit ,继续重复卷积,最终的输出是不是和quant_aware的模型精度保持一致? Q3:train.py完成后会生成模型的ckpt。保存的参数中包含每层权重,bn。还有image.scale 不同的检查点这个数据大约都是3.5-4.5之间这个数据是怎么来的?add_tmp.scale,concat_tmp.scale,lrelu_tmp.scale。这些参数是什么? Q4:量化后的模型跑slim/quantization/eval.py map为0,slim/quantization/infer.py 没有目标。跑tools下的eval.py map为69%,infer.py 有目标,但是应该是map69%的那个那个数据流方式做的推断。怎么样才能跑出训练阶段的 map81%? Q5:如何获取指定中间某节点的输出结果?网络结果到detection最终的box 和score 这一过程是否和tf,torch的计算步骤一致? Q6:训练阶段数据做了很多数据增强,但是做推断的时候直接im/255.,这样会不会掉精度? Q7:量化的模型可以转到tf 的pb 模型解析吗,是否有对应的工具 或者 转换规则?