昇腾社区首页
中文
注册

自动量化

功能介绍

通过aclgrphCalibration接口对非量化的Graph进行自动量化。

调用示例

  1. 添加头文件。
    #include "amct/acl_graph_calibration.h"
    #include "amct/acl_calibration_configs.h"
    #include "amct/amct_error_code.h"
  2. 通过解析或手动构造方式创建Graph对象。
    #include "parser/caffe_parser.h"
     
    ge::Graph graph("origin");
    std::map<ge::AscendString, ge::AscendString> parseOptions;
    auto ret = ge::aclgrphParseCaffe("./path/to/resnet50.prototxt",
        "./path/to/resnet50.caffemodel", parseOptions, graph);
  3. 定义aclgrphCalibration接口所需配置参数。
    std::map<ge::AscendString, ge::AscendString> quantizeConfigs = {};
    quantizeConfigs[ge::AscendString(amct::aclCaliConfigs::INPUT_DATA_DIR)] = ge::AscendString("./path/to/cali_data.bin");
    quantizeConfigs[ge::AscendString(amct::aclCaliConfigs::INPUT_SHAPE)] = ge::AscendString("input:16,224,224,3");
    quantizeConfigs[ge::AscendString(amct::aclCaliConfigs::SOC_VERSION)] = ge::AscendString("Ascend310P3");
  4. 调用接口执行量化改图。
    ret = ge::aclgrphCalibration(graph, quantizeConfigs);
    if (ret != ge::GRAPH_SUCCESS) {
        return FAILED;
    }
    return SUCCESS;