在一台边缘设备上部署一个已缩放到合适范围的神经网络权重矩阵。网络共有 N 层,每层有 H 个实数权重。每一层必须统一选择一个量化位宽 q,且 q 只能取 2、4、8 三种之一。所有层选择的位宽之和不超过 Qmax。 若某层选择位宽 q,则对该层每个权重 w 执行: 1) 放大并取整:wq = int(w * 2^q) 2) 还原:wr = wq 2^q 该层的量化误差定义为该层所有权重的 w - wr 之和。全网误差为各层误差之和。目标是在总位宽预算不超过 Qmax 的前提下,使全网误差最小。输出最小总误差乘以 100 后向下取整的结果。
输入描述:
第一行:N H Qmax接下来 N 行:每行 H 个实数,表示对应层的权重


输出描述:
一行,一个整数,为最小总误差乘以 100 后向下取整
示例1

输入

2 3 8
0.1 0.5 0.9
0.3 0.75 0.2

输出

12

说明

若两层都选 4 比特,误差之和为 0.0625 + 0.0625 = 0.125
预算 4 + 4 = 8,满足约束
输出 floor(0.125 * 100) = 12
其他组合(如 2+4 或 2+2)误差更大

备注:
每层必须也只能选一个位宽(2 或 4 或 8)位宽预算约束:所有层选定的位宽之和 ≤ Qmax误差按绝对值累加结果向下取整,相当于 floor(answer * 100)
加载中...