×

签到

分享到微信

打开微信,使用扫一扫进入页面后,点击右上角菜单,

点击“发送给朋友”或“分享到朋友圈”完成分享

【使用求助】yolov5 生成离线模型 batchsize与corenum修改后无框问题 已解决 focused2021-11-24 09:34:12 回复 11 查看 使用求助
【使用求助】yolov5 生成离线模型 batchsize与corenum修改后无框问题
分享到:

产品: mlu270;使用镜像:yellow.hub.cambricon.com/pytorch/pytorch:0.15.0-ubuntu16.04;

驱动版本:v4.9.3;框架:pytorch;

参考实现:yolov5移植教程(配实际操作视频)       原始yolov5s模型均已实现,包括batchsize及corenum设置


问题:在自训练的yolov5s模型上生成离线模型 ,设置batchsize及corenum都为1,模型检测结果无问题;修改其他值后,如batchsize=1,corenum=4,模型检测结果出现异常,异常结果:无框或乱框

注:自训练模型分类数为2,只对yolov5s.yaml文件中的nc : 80 修改为 nc : 2  

       datasets.py中letterbox auto改为False,用以修改输入为640*640    其他无修改

batchsize = 1 
corenum = 4
...

elif opt.cfg == 'mlu':
from models.yolo import Model
device = ct.mlu_device()
model = Model('./models/yolov5s.yaml').to(torch.device('cpu'))
model.float().fuse().eval()

quantized_net = torch_mlu.core.mlu_quantize.quantize_dynamic_mlu(model)

state_dict = torch.load("./yolov5s_int8.pt")
quantized_net.load_state_dict(state_dict, strict=False)

quantized_net.eval()
quantized_net.to(ct.mlu_device())

if opt.jit:
print("### jit")
ct.save_as_cambricon('yolov5s_int8_' + str(batchsize)+ '_' + str(corenum))
torch.set_grad_enabled(False)
ct.set_core_number(corenum)
trace_input = torch.randn(batchsize, 3, 640, 640, dtype=torch.float)
input_mlu_data = trace_input.type(torch.HalfTensor).to(ct.mlu_device())
quantized_net = torch.jit.trace(quantized_net, input_mlu_data, check_trace = False)


版权所有 © 2024 寒武纪 Cambricon.com 备案/许可证号:京ICP备17003415号-1
关闭