33 Star 37 Fork 135

Ascend / parser

 / 详情

amct量化后的caffe模型:caffemodel部分layer参数如何解释?

DONE
Consultation
创建于  
2021-04-08 16:04

使用amct进行量化后的caffe模型caffemodel部分layer如下:

name: "conv1_1_new_0_quant_layer"
type: "Quant"
bottom: "data"
top: "conv1_1_new_0_quant_layer_output0"
quant_param {
  scale: 255.00949096679688
  offset: "\200"
}
name: "conv1_1_new"
type: "Convolution"
bottom: "conv1_1_new_0_quant_layer_output0"
top: "conv1_1"
blobs {
  shape {
    dim: 8
    dim: 1
    dim: 5
    dim: 5
  }
  int8_data: "\033\005\321\304\274&J*\353\3217\177w0!Pr[ca72\0135<\330\214\212\320\376\333\377D[&\021]\177V\010\'\\?\364\325\366\310\216\236\345%6\003\324\005j\023\262\240\"Z\277\200\305[\022\243\271\031Z\375\340\0167\030\324\264\302\340\374\316\233\220\246\327\010\013\007\004\3742p\177T\024\3774X7\010-\024\333\275\355:?\351\237\3433e\007\241\3251\177\037\245\254\033e0\307\256\263\242\253\252\276\273\245\253\275\350\323\330\337\032A\365%IrS%b\177[\035\334\322\016D\'\352\326(\177Q\002\352\033A\033\000\373\002\356\321\346\364\001\351\332\006\t\325\262\326\rWC\351\256\324<\177G\332\265\344<U\017\337\272\325\003\000"
}
blobs {
  shape {
    dim: 8
  }
  int32_data: 25725
  int32_data: 1407
  int32_data: -568
  int32_data: 222
  int32_data: 269
  int32_data: -51290
  int32_data: 8733
  int32_data: 862
}
convolution_param {
  num_output: 8
  bias_term: true
  group: 1
  pad_h: 0
  pad_w: 0
  kernel_h: 5
  kernel_w: 5
  stride_h: 2
  stride_w: 2
}
name: "conv1_1_new_dequant_layer"
type: "DeQuant"
bottom: "conv1_1"
top: "conv1_1"
blobs {
  shape {
    dim: 8
  }
  uint64_data: 929505652
  uint64_data: 951083103
  uint64_data: 953660897
  uint64_data: 946316434
  uint64_data: 944190466
  uint64_data: 922065885
  uint64_data: 928335028
  uint64_data: 955703855
}

分别是quant,conv,dequant三层,我们使用别的量化方法进行量化后生成的caffemodel不知该如何与之对齐(prototxt已能对齐,因为caffemodel对不齐导致atc转换失败),目前我们的疑惑是:
(1)请问关于conv层中的两个blobs如何解释以及需要填的数据和数据类型?
(2)请问dequant中的blobs参数如何诠释以及该填入的数据?

评论 (7)

fuheaven 创建了Empty-Template
fuheaven 关联仓库设置为Ascend/parser
fuheaven 修改了标题
fuheaven 修改了描述
fuheaven 修改了描述
展开全部操作日志

你好,问题已经收到,我们正在分析,会尽快给你答复,谢谢

fuheaven 修改了标题
王涛 任务状态TODO 修改为Analysing

(1)请问关于conv层中的两个blobs如何解释以及需要填的数据和数据类型?
(2)请问dequant中的blobs参数如何诠释以及该填入的数据?
这两个blobs填入的数值和我们的具体实现相关,conv 的两个blob 分别是 int8 的权重数据和int32的 bias 数据,dequant 的blob是包含了 deq_scale 等的量化相关数据,
如果目的是想在昇腾系列芯片部署量化模型,使用自有量化算法;可以参考 amct_caffe 提供的 convert_model API的使用,在提供的 Resnet50 sample中也有该 API 使用的示例,参考 amct_caffe 工具使用说明文档,看看是否能解决你的问题;

请问关于deq_scale参数能详细解释一下吗(我们的理解是deq_scale = Sw * Si),另外关于Resnet50 sample包能指个路吗,我们没找到下载的路径,只在文档里看到,谢谢~

  1. https://ascend.huawei.com/zh/#/software/cann/commercial 可以去这链接下载 amct 的工具包,里面的amct/amct_caffe/amct_caffe_sample.tar.gz 就是 amct_caffe的sample代码,里面包含了 convert_model的API使用示例;
  2. 关于 deq_scale 的详细设置,可以参考这个指南 https://support.huawei.com/enterprise/zh/doc/EDOC1100180845/be1925a2
    里面提供了较详细的介绍;
    输入图片说明

嗯,还有一个需要注意的地方,目前解决方案只支持权重数据采用对称量化,即不带 zero_point/offset的量化算法,如果采用非对称算法则不能部署到昇腾系列芯片。

wangjintang 任务类型Empty-Template 修改为Consultation
王涛 负责人设置为wangjintang

@fuheaven 上面wangxiong的分析点,有没有解决你的问题?如果还有问题,请及时回复一下,多谢

多天没有反馈,这个issue先关闭,有问题可以新提issue,多谢

wangjintang 任务状态Analysing 修改为DONE

登录 后才可以发表评论

状态
负责人
项目
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
预计工期 (小时)
参与者(4)
1
https://gitee.com/ascend/parser.git
git@gitee.com:ascend/parser.git
ascend
parser
parser

搜索帮助