使用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参数如何诠释以及该填入的数据?
你好,问题已经收到,我们正在分析,会尽快给你答复,谢谢
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
(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包能指个路吗,我们没找到下载的路径,只在文档里看到,谢谢~
嗯,还有一个需要注意的地方,目前解决方案只支持权重数据采用对称量化,即不带 zero_point/offset的量化算法,如果采用非对称算法则不能部署到昇腾系列芯片。
@fuheaven 上面wangxiong的分析点,有没有解决你的问题?如果还有问题,请及时回复一下,多谢
多天没有反馈,这个issue先关闭,有问题可以新提issue,多谢
登录 后才可以发表评论