打开微信,使用扫一扫进入页面后,点击右上角菜单,
点击“发送给朋友”或“分享到朋友圈”完成分享
使用MLU270做在线推理,相同的输入,但是模型量化后的输出与执行融合推理后的输出不一致,如下面显示的output1与output2,有差别,这正确吗?
简化代码:
#获取网络 net=IQinput().eval() #加载原始权重 net.load_state_dict(torch.load('model_nozip.pth', map_location='cpu'), False) # net.to(ct.mlu_device()) #调用量化接口进行模型量化 net_quantization = mlu_quantize.quantize_dynamic_mlu(net, {'firstconv':False}, dtype='int8', gen_quant=True) #在cpu上运行推理,生成量化值,过一次量化后的模型 output1 = net_quantization(input1) print(output1,output1.shape) #保存量化后的模型 torch.save(net_quantization.state_dict(), 'model_quantization.pth') #加载量化权重 net_quant = mlu_quantize.quantize_dynamic_mlu(net, gen_quant=False) net_quant.load_state_dict(torch.load('model_quantization.pth')) #将模型和输入数据拷贝到MLU上。 net_mlu = net_quant.to(ct.mlu_device()) input_mlu = input1.to(ct.mlu_device()) #执行融合推理 modeltrace= torch.jit.trace(net_mlu, input_mlu, check_trace=False) #在tracedModel中保存了网络所对应的融合图,然后直接给定MLU的输入tensor就可以完成在MLU设备上的运算 output_mlu_fusion = modeltrace(input_mlu) output2=output_mlu_fusion.cpu() print(output2,output2.shape)
output1 与output2分别如下图第一、二行:
热门帖子
精华帖子