在量化方面已经有很多工作了,其中一个是用每个FC层的浮点的聚类中心值来代替所有权重值,可以获得20X的压缩率,以及在top-上1%的精度损失;hash网则将所有权重放入哈希桶内,且所有共享哈希桶的权重共享一个单精度值。但它只考虑了几种浅层网络的FC层;还有人提出了将剪枝、量化和霍夫曼编码结合的方法;还有人使用16位精度的权重来代替32位精度的权重来训练网络;之后还有EBP,它在推断的前向传播过程中,将其随机地转化为±1的形式;BinaryConnect进一步拓展了这个做法:它有两套网络权重,浮点型的和binary型的。浮点型的作为权重二元化的参考;另外还有BNN、异或网、TWN、124网和QNN(它将权值分块后聚类)。
但还是有两个问题没有解决:降低的精度,和为了收敛而增加的训练迭代次数。
inq并不需要特殊的网络架构,它是一套训练方法,可以应用到任何一个预先训练好的CNN网络上。它总共分为三个部分:权重划分、逐组量化和重新训练。它将每一层的未量化的权重每次分为保持原样的和被量化的两部分,然后重新训练未被量化的权重,以弥补由量化导致的精度损失。如此重复,直到所有的权重都被量化完成。
量化后的权重值将从
中选取,其中n1和n2为整型数据,且n1≥n2。而n1和n2的设置为超参数,由于位宽b是确