.pth转pt遇到这个问题:
RuntimeError: hasSpecialCase INTERNAL ASSERT FAILED at /opt/conda/conda-bld/pytorch_1579027003190/work/torch/csrc/jit/passes/alias_analysis.cpp:300, please report a bug to PyTorch. We don’t have an op for aten
原代码如下:
model = Model(opt)
model = torch.nn.DataParallel(model).to(device)
state_dict = torch.load(opt.saved_model)
model.load_state_dict(state_dict, strict=True)
for p in model.parameters():
p.requires_grad = False
model.eval()
model = model.cuda()
#print(model)
example = torch.rand(1, 1, 48, 320).to(device)
traced_script_module = torch.jit.trace(model, example)
print("---------")
print(traced_script_module)
traced_script_module.save("./tps.pt")
将以下代码
traced_script_module = torch.jit.trace(model, example)
改为
traced_script_module = torch.jit.trace(model.module, example)
即可成功转为pt,不过记得要用上面第三行的 torch.nn.DataParallel。