×
分享到微信

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

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

MLU100离线推理torch.jit.trace &amp torch.jit.load无法进行正确计算 已完结 wzq2021-04-19 16:01:28 回复 1 查看 CNStream PyTorch
MLU100离线推理torch.jit.trace &amp torch.jit.load无法进行正确计算
分享到:

以下所述参考官方《Cambricon Pytorch ⽤⼾⼿册 发布 0.7.0 》(2019年9月30日版),基于MLU100进行离线推理

根据手册7.3节模型持久化中,对模型进行离线推理保存,再次运行时不需再次编译。

traced_model = jit.trace(mlu_model, example_input)
traced_model(example_input)
traced_model.save("model.pt")
new_traced_model = jit.load("model.pt")

这样操作之后,进行推理时无法得到正确的计算结果,并且会有以下警告:

CNML: 6.6.0 6480416
CNRT: 3.12.0 71850d5
2021-04-19 07:43:35.238567: [cnrtWarning] [14771] [Card : NONE] Failed to initialize CNDEV. Host manage interface disabled
[I export.cpp:630] method mluSave
[I interpreter.cpp:663] [MLU Serialization]: Total mem used of offline model is 56047116.
dataloader len: 36
2021-04-19 07:44:15.097436: [cnrtError] [15741] [Card : 0] MLU unfinished. cnrtStream fail.

直接离线,不进行推理模型保存,可以得到正确结果(操作如下)。但是每次推理之前都要进行trace耗费大量时间

 trace_model = torch.jit.trace(model,example_input, check_trace=False)

请问,离线保存模型该如何操作才能保证网络模型计算正确?或者上述离线操作中有何错误?

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