1. Job Roadmap
  2. Home
  3. Problem Set
  4. codenotelist
  5. Forum
  6. course
  7. Shore Share Sessions
  8. Record
  1. Login
  2. Sign Up
  3. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
    ZhContent TextSol AI分析

解题思路

本题本质是一个 带约束的最优化问题,可以转化为 多重选择的动态规划(Multiple Choice Knapsack)。

1. 问题拆解

  • 网络共有 N 层,每层有 H 个权重
  • 每一层只能选择一种量化比特数 $

P4533.第3题-模型量化最小误差

    1000ms Tried: 516 Accepted: 140 Difficulty: 8 所属公司 : 华为
    算法与标签>动态规划

题目内容

在一个深度神经网络中,网络的权重通常以浮点数的形式存储。为了减少内存占用和提高计算效率,需要将这些浮点数量化为整数,例如可通过int(Wfloat∗28)int (W _{float }*2^8)int(Wfloat​∗28)将一个小于111的浮点数量化为INT8INT8INT8。

假设我们有一组[N,H][N,H][N,H]的模型权重,其中:NNN表示网络的层数,HHH表示每一层的维度。现在需要将网络权重进行量化,已知权重已经过预处理缩放到合适的值,可通过Wq=int(Wfloat∗2Qi)W_q=int(W_{float} *2^{Q_i})Wq​=int(Wfloat​∗2Qi​)直接量化到对应的比特位QiQ_iQi​,同时定义量化误差为Δ=∣Wfloat−Wq2Qi∣\Delta = \left| W_{\text{float}} - \frac{W_q}{2^{Q_i}} \right|Δ=​Wfloat​−2Qi​Wq​​​ 同一层选用的量化比特是相同的,不同层之间可选择不同的量化比特。定义整个模型每一层的量化比特数为[Q1,Q2,...,QN][Q_1,Q_2,...,Q_N][Q1​,Q2​,...,QN​],并限定 Qi∈[2,4,8]Q_i∈ [2,4,8]Qi​∈[2,4,8],为了保证整体空间压缩足够小,需满足∑i=1NQi≤Qmax\sum_{i=1}^{N} Q_i \leq Q_{\text{max}}∑i=1N​Qi​≤Qmax​。请给出最优的量化方案,使得所有层的量化误差总和最小。

输入描述

第一行:N,H,QmaxN,H,Q_{max}N,H,Qmax​

接下来NNN行是模型权重,每行HHH个系数,系数间用空格分隔(0<N<=300,0<H<=100,0<Qmax<=2400)(0<N<=300,0<H<=100,0<Q_{max} <=2400)(0<N<=300,0<H<=100,0<Qmax​<=2400)

输出描述

请输出在最优方案下,整个网络的最小总量化误差。请将答案*100100100后取整输出(例如最小总量化误差为12.34567812.34567812.345678时,输出123412341234)

样例1

输入

3 10 6
0.669342691379556 0.6232664728193106 0.009648814115477689 0.25655923835608296 0.8542091541905418 0.22734652633918107 0.3856022177718754 0.4735219607872916 0.7352822546717339 0.8810700172773613
0.8998864964296006 0.5355025966489801 0.9114305820079228 0.7237159502129922 0.8114010729538255 0.5647698690173886 0.5656036144842292 0.2915636526042238 0.4633626072815791 0.4933586717844284
0.5681407125745037 0.972337640852664 0.33248445308239827 0.8870229039214033 0.2869760304712957 0.5912444652782809 0.2513253965878265 0.8945001503120086 0.7217848272492855 0.21360959764416299

输出

384

说明

N=3,H=10,∑Qi=6N=3,H=10,\sum Q_i=6N=3,H=10,∑Qi​=6 每层只能使用2比特量化,量化误差分别为1.365,1.260,1.2191.365,1.260,1.2191.365,1.260,1.219,总量化误差3.8443.8443.844,*100100100后输出整数为384384384。

样例2

输入

3 10 24
0.669342691379556 0.6232664728193106 0.009648814115477689 0.25655923835608296 0.8542091541905418 0.22734652633918107 0.3856022177718754 0.4735219607872916 0.7352822546717339 0.8810700172773613
0.8998864964296006 0.5355025966489801 0.9114305820079228 0.7237159502129922 0.8114010729538255 0.5647698690173886 0.5656036144842292 0.2915636526042238 0.4633626072815791 0.4933586717844284
0.5681407125745037 0.972337640852664 0.33248445308239827 0.8870229039214033 0.2869760304712957 0.5912444652782809 0.2513253965878265 0.8945001503120086 0.7217848272492855 0.21360959764416299

输出

5

说明

N=3,H=10,∑Qi=24N=3,H=10,\sum Q_i=24N=3,H=10,∑Qi​=24 每层只能使用888比特量化,量化误差分别为0.018,0.018,0.020.018,0.018,0.020.018,0.018,0.02,总量化误差0.0560.0560.056,*100100100后输出整数为555。

登录后即可使用 AI 分析。

模式
倒计时时长
:

最长 10 小时 59 分;应用后按此时长重新开始。

提示:点击提交记录在左侧题面区域查看详情
题库
AI分析设置
留空使用官方API Key,每天有次数限制(自定义API Key仅限会员和管理员使用,不限次数)
会员和管理员可切换模型;切到 Kimi/智谱/通义/豆包时需填写对应供应商 API Key
升级会员,可将运行与提交冷却时间缩短至 1 秒起

Status

  • Judging Queue
  • Service Status

Development

  • Open Source

Support

  • Help
  • Contact Us

About

  • About
  • Privacy
  • Terms of Service
  • Copyright Complaint
  1. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
  2. Legacy mode
  3. Theme
    1. Light
    2. Dark
  1. 京ICP备2025123107号-1
  2. Worker 2, 54ms
  3. Powered by Hydro v5.0.0-beta.18 Community
CLOSE


ScanQRCodePrompt

请使用微信扫描下方二维码完成注册

Forgot password or username?