quantize_model
功能说明
训练后量化接口,将输入的待量化的图结构按照给定的量化配置文件进行量化处理,在传入的图结构中插入量化相关的算子,生成量化因子记录文件record_file,并返回量化处理新增的算子列表。
函数原型
quant_add_ops = quantize_model(graph, config_file, record_file, calib_outputs=None)
参数说明
参数名  | 
输入/返回值  | 
含义  | 
使用限制  | 
|---|---|---|---|
graph  | 
输入  | 
用户传入的待量化模型的tf.Graph图。  | 
数据类型:tf.Graph  | 
config_file  | 
输入  | 
用户生成的量化配置文件,用于指定模型tf.Graph图中量化层的配置情况。  | 
数据类型:string  | 
record_file  | 
输入  | 
量化因子记录文件路径及名称。  | 
数据类型:string  | 
calib_outputs  | 
输入  | 
graph输出算子列表。 当改图导致尾层输出节点变化,则输出列表也随之更新。  | 
数据类型:list 默认值:None  | 
quant_add_ops  | 
返回值  | 
量化插入的算子变量列表。  说明:  
该列表中的变量值无法在模型训练参数文件中找到,故模型训练参数直接恢复会出现变量无法找到的错误,因此需要在模型训练参数恢复之前,将 quant_add_ops列表中的变量值从恢复列表中剔除,具体的剔除方法请参见插入量化算子后,如何恢复模型训练参数。  | 
数据类型:list,列表中元素类型为tf.Variable  | 
返回值说明
网络中量化的层名信息列表。
quantize_model对图做了融合,则网络的输出节点会发生变化。例如,Conv+BN(或Conv+BiasAdd+BN)融合后为Conv+BiasAdd,BN等价的输出节点为BiasAdd节点。
调用示例
1 2 3 4 5 6 7 8 9  | import amct_tensorflow as amct # 建立待量化的网络结构 network = build_network() # 插入量化API amct.quantize_model( graph=tf.get_default_graph(), config_file="./configs/config.json", record_file="./record_scale_offset.txt")  | 
父主题: 训练后量化接口