TorchScript to MNN转换出错
平台(如果交叉编译请再附上交叉编译目标平台):
windows x86
Github版本:
2.7.1
编译方式:
pip install MNN==2.7.1
我想把pytorch训练的.pth文件转换为.mnn格式。首先将.pth转换为.pt文件,代码如下:
model_path1 = '3_resnetfc_ce_epoch_9_length_1_opt_1_mulopt_0_flip_1_crop_1_batch_256_train_9976_val_8320_valDice_9275_lr_1e-4.pth' net = resnet_lstm() device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') net.load_state_dict(torch.load(model_path1, map_location=device)) net = net.cuda() net = net.eval() model_trace = torch.jit.trace(net, torch.rand(1, 3, 224, 224).cuda()) model_trace.save('model_trace.pt') model_script = torch.jit.script(net) model_script.save('model_script.pt')
然后通过命令行将.pt转换为.mnn,命令行如下: MNNConvert -f TORCH --modelFile model_trace.pt --MNNModel model_trace.mnn --bizCode biz 或者 MNNConvert -f TORCH --modelFile model_script.pt --MNNModel model_script.mnn --bizCode biz
但是报错:
The device support i8sdot:0, support fp16:0, support i8mm: 0
The device support i8sdot:0, support fp16:0, support i8mm: 0
Framework Input ERROR or Not Support This Model Type Now!
Traceback (most recent call last):
File "D:\Anaconda3.7\envs\pytorch_gpu\lib\runpy.py", line 194, in _run_module_as_main
return _run_code(code, main_globals, None,
File "D:\Anaconda3.7\envs\pytorch_gpu\lib\runpy.py", line 87, in run_code
exec(code, run_globals)
File "D:\Anaconda3.7\envs\pytorch_gpu\Scripts\mnnconvert.exe_main.py", line 7, in
我试过将onnx和tflite转换为mnn,都可以正常运行,但torch到mnn一直不行。找不到model_trace.mnn这个文件感觉很奇怪,这个文件不是输出的文件吗?
初学者,如有不对,敬请指正
windows 上不支持 torchscripts 的转换,可以通过 onnx 转 pytorch 的模型。也可以用 linux 系统编译 mnn 并打开 torchscripts 支持
Marking as stale. No activity in 60 days.