下载
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
昇腾小AI

record记录文件

record文件,为基于protobuf协议的序列化数据结构文件,记录量化场景量化因子Scale/Offset等,通过该文件、压缩配置文件以及原始网络模型文件,生成压缩后的模型文件。

record原型定义

record文件对应的protobuf原型定义为(或查看AMCT安装目录/amct_mindspore/proto/scale_offset_record_mindspore.proto文件):

syntax = "proto2";

message SingleLayerRecord {
    optional float scale_d = 1;
    optional int32 offset_d = 2;
    repeated float scale_w = 3;
    repeated int32 offset_w = 4;
    repeated uint32 shift_bit = 5;
    optional bool skip_fusion = 9 [default = false];
}

message MapFiledEntry {
    optional string key = 1;
    optional SingleLayerRecord value = 2;
}

message ScaleOffsetRecord {
    repeated MapFiledEntry record = 1;
}

参数说明如下:

消息

是否必填

类型

字段

说明

SingleLayerRecord

-

-

-

包含了量化层所需要的所有量化因子记录信息。

optional

float

scale_d

数据量化scale因子,仅支持对数据进行统一量化。

optional

int32

offset_d

数据量化offset因子,仅支持对数据进行统一量化。

repeated

float

scale_w

权重量化scale因子,支持标量(对当前层的权重进行统一量化),向量(对当前层的权重按channel_wise方式进行量化)两种模式,仅支持卷积层(nn.Conv2d dilation)、深度卷积层(nn.DepthwiseConv2d)类型进行channel_wise量化模式。

repeated

int32

offset_w

权重量化offset因子,同scale_w一样支持标量和向量两种模式,且需要同scale_w维度一致,当前不支持权重带offset量化模式,offset_w仅支持0。

repeated

uint32

shift_bit

移位因子。预留字段,当前不支持,不需要配置。

optional

bool

skip_fusion

配置当前层是否要跳过Conv+BN融合,默认为false,即当前层要进行上述融合。

ScaleOffsetRecord

-

-

-

map结构,为保证兼容性,采用离散的map结构。

repeated

MapFiledEntry

record

每个record对应一个量化层的量化因子记录;record包括两个成员:

  • key为所记录量化层的layer name。
  • value对应SingleLayerRecord定义的具体量化因子。

MapFiledEntry

optional

string

key

层名。

optional

SingleLayerRecord

value

量化因子配置。

对于optional字段,由于protobuf协议未对重复出现的值报错,而是采用覆盖处理,因此出现重复配置的optional字段内容时会默认保留最后一次配置的值,需要用户自己保证文件的正确性

record记录文件

最终生成的record文件格式为record.txt。对于一般量化层配置需要包含scale_d、offset_d、scale_w、offset_w总共4项参数,量化因子record文件内容示例如下:

record {
  key: "conv1"
  value {
    scale_d: 0.020284997
    offset_d: -8
    scale_w: 0.00039157062
    offset_w: 0
  }
}
record {
  key: "layer1.0.conv1"
  value {
    scale_d: 0.050864004
    offset_d: -128
    scale_w: 0.0023167059
    offset_w: 0
  }
}
record {
  key: "layer1.0.conv2"
  value {
    scale_d: 0.026584487
    offset_d: -128
    scale_w: 0.0010260359
    offset_w: 0
  }
}
搜索结果
找到“0”个结果

当前产品无相关内容

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