PyTorch网络迁移后(执行获取基于GPU执行模型训练生成的数据文件和获取基于昇腾AI处理器执行模型训练生成的数据文件相当于完成了网络迁移),可能有部分算子名称发生改变,此时进行精度比对可能无法为新算子匹配到正确的标准算子完成比对。那么需要使用get_op_map接口获取原始网络与迁移后网络内算子的映射关系,为新算子匹配到正确的标准算子。
需要在安装开启dump功能的torch环境上进行操作。
import torch ir_map, param_map = torch.utils.get_op_map() # 返回值, ir_map是ir_name之间的映射关系,param_map是算子参数名称的映射关系 ir_map = {'CudnnBatchNormBackward': 'NativeBatchNormBackward', 'NativeBatchNormBackward': 'CudnnBatchNormBackward', 'CudnnConvolutionBackward': 'NpuConvolutionBackward', 'NpuConvolutionBackward': 'CudnnConvolutionBackward'} param_map = {'CudnnBatchNormBackward': {'epsilon': 'eps'}, 'NativeBatchNormBackward': {'eps': 'epsilon'}, 'CudnnConvolutionBackward': {'self': 'input'}, 'NpuConvolutionBackward': {'input': 'self'}}
执行此操作后不会输出文件,可直接执行Tensor比对。