在嵌入式设备上运行神经网络推理时,由于硬件资源有限,通常需要将浮点参数压缩为低比特整数表示,以减少存储开销和加速计算。 本题要求你实现一种对称INT8量化方案,分别对激活矩阵 A 和参数矩阵 B 进行量化,然后在整数域完成矩阵乘法,最后还原为浮点结果并输出。 具体规则如下: 1. 原始矩阵 激活矩阵 A 的维度为 M*K,其中每一行代表一个样本向量。参数矩阵 B 的维度为 K*N,其中每一列代表一个输出通道。 2. 量化过程 (1) 对激活矩阵 A 按行量化(per-sample) 对第 i 行,先计算缩放因子: s_A^(i) = max_k ∈ [1,K] |A_i,k|127 再对每个元素量化: Q_A^(i,k) = clip(round(A_i,ks_A^(i)), -127, 127) (2) 对参数矩阵 B 按列量化(per-channel) 对第 j 列,先计算缩放因子: s_B^(j) = max_k ∈ [1,K] |B_k,j|127 再对每个元素量化: Q_B^(k,j) = clip(round(B_k,js_B^(j)), -127, 127) 注意: round 采用 Python round() 的逻辑,即银行家舍入(四舍六入五取偶)。 非 0.5 的情况遵循常规四舍五入;恰好 0.5 时舍入到最接近的偶数。 - clip(x, -127, 127) 将 x 限制在 [-127, 127] 范围内。 3. 量化矩阵乘法 先在整数域计算乘积(结果为INT32): Y_int32^(i,j) = Σ_k=1^K Q_A^(i,k) · Q_B^(k,j) 然后乘以对应的缩放因子还原为浮点数: Y_fp32^(i,j) = Y_int32^(i,j) · s_A^(i) · s_B^(j)
从标准输入读取,依次给出矩阵 A 和矩阵 B。 对于每个矩阵,第一行为两个整数表示行数和列数,随后若干行为矩阵元素(浮点数),同一行内元素以空格分隔。
输出还原后的浮点结果矩阵,每个元素四舍五入保留两位小数(建议使用 Python 的 format(num, '.2f') 处理)。同一行内元素以单个空格分隔,行首行尾不要有多余空格。
1 3 2.0 -1.0 3.0 3 1 1.0 -2.0 0.5
5.52
3 2 10.0 -5.0 0.0 8.0 -3.0 -3.0 2 2 4.0 -6.0 2.0 7.0
29.84 -95.35 16.13 56.00 -18.05 -2.98
考点:模拟
限制 1 秒 / 256MB | 标准输入输出
推荐方向:模拟
本题切入点
严格按对称 INT8 量化定义实现:A 按行、B 按列分别求缩放因子(max|·|/127),用银行家舍入取整并 clip 到 ±127,再在整数域做矩阵乘后反量化输出。
不涉及复杂算法,把题目描述的流程原样翻译成代码逐步执行即可。
思路框架(模拟 通法 · 非本题专属)
实现要点:结构上通常是一个外层循环包住若干 if/else 分支;只要状态定义清楚,正确率很高。
复杂度:时间 O(操作次数) | 空间 O(状态数)
该范式的通法易错点
样例 1:输入 1 3 / 2.0 -1.0 3.0 / 3 1 / 1.0 / -2.0 / 0.5 → 输出 5.52
激活矩阵 A 为 1*3 矩阵 [2.0, -1.0, 3.0],参数矩阵 B 为 3*1 矩阵 [[1.0], [-2.0], [0.5]]。
对 A 按行量化:该行绝对值最大为 3.0,缩放因子 s_A = 3.0/127。量化后 Q_A = [round(84.67), round(-42.33), round(127.0)] = [85, -42, 127]。
对 B 按列量化:该列绝对值最大为 2.0,缩放因子 s_B = 2.0/127。量化后 Q_B = [round(63.5), round(-127.0), round(31.75)] = [64, -127, 32]。注意 round(63.5) = 64(银行家舍入,取偶数)。
整数域乘法:Y_int32 = 85*64 + (-42)*(-127) + 127*32 = 5440 + 5334 + 4064 = 14
样例 2:输入 3 2 / 10.0 -5.0 / 0.0 8.0 / -3.0 -3.0 / 2 2 / 4.0 -6.0 / 2.0 7.0 → 输出 29.84 -95.35 / 16.13 56.00 / -18.05 -2.98
A 有3个样本向量,B 有2个输出通道。对 A 逐行、对 B 逐列分别计算缩放因子和量化值,在整数域完成矩阵乘法后,乘以对应的行缩放因子和列缩放因子还原为浮点数。
解析由校招宝本地引擎整理(依据源站考点标签 / 人工判题标注 / 题面规模信号),非官方题解,仅供思路参考。
本题来源:2026年-华为-1月21号AI岗。