文档
注册

基础量化

训练后量化支持量化的层以及约束如下,量化过程请参见获取更多样例

表1 训练后量化支持的层以及约束

支持的层类型

约束

备注

MatMul:全连接层

transpose_a=False, transpose_b=False,adjoint_a=False,adjoint_b=False

-

BatchMatMul/BatchMatMulV2

adjoint_a=False,adjoint_b=False

-

Conv2D:卷积层

-

weight的输入来源不含有placeholder等可动态变化的节点,且weight的节点类型只能是const。

DepthwiseConv2dNative:Depthwise卷积层

dilation=1

Conv2DBackpropInput:反卷积层

dilation=1

AvgPool:平均下采样层

-

-

接口调用流程

训练后量化接口调用流程如图1所示:

图1 训练后量化接口调用流程
蓝色部分为用户实现,灰色部分为用户调用AMCT提供的API实现,用户在TensorFlow原始网络推理的代码中导入库,并在特定的位置调用相应API,即可实现量化功能。工具使用分为如下两种场景,本手册重点介绍使用NPU在线推理场景。使用TensorFlow CPU推理的详细操作以及sample运行示例请参见AMCT工具(TensorFlow)
  • 使用NPU在线推理
    1. 用户首先构造TensorFlow的原始模型,然后使用create_quant_config_ascend接口生成量化配置文件。
    2. 根据TensorFlow模型和量化配置文件,即可调用quantize_model_ascend接口对原始TensorFlow模型进行优化,修改后的模型中包含了量化算法,用户使用该模型借助AMCT提供的数据集和校准集,在NPU环境中进行在线推理,可以得到量化因子。

      其中数据集用于在NPU环境中对模型进行推理时,测试量化数据的精度;校准集用来产生量化因子,保证精度。

    3. 最后用户可以调用save_model_ascend接口保存量化后的模型,该模型可在NPU环境中部署。
  • 使用TensorFlow CPU推理
    • 场景1
      1. 用户首先构造TensorFlow的原始模型,然后使用create_quant_config接口生成量化配置文件。
      2. 根据TensorFlow模型和量化配置文件,即可调用quantize_model接口对原始TensorFlow模型进行优化,修改后的模型中包含了量化算法,用户使用该模型借助AMCT提供的数据集和校准集,在TensorFlow CPU环境中进行推理,可以得到量化因子。

        其中数据集用于在TensorFlow环境中对模型进行推理时,测试量化数据的精度;校准集用来产生量化因子,保证精度。

      3. 最后用户可以调用save_model接口保存量化后的模型,该模型可在TensorFlow CPU环境中进行精度仿真。

      关于接口的详细说明请参见接口说明

    • 场景2

      如果用户不使用 场景1中的接口,而是用自己计算得到的量化因子以及TensorFlow原始模型,生成量化模型,则需要使用convert_model接口完成相关量化动作。

调用示例

调用示例请参见快速入门

搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词