MNN icon indicating copy to clipboard operation
MNN copied to clipboard

TorchScript to MNN转换出错

Open puxuntu opened this issue 1 year ago • 1 comments

平台(如果交叉编译请再附上交叉编译目标平台):

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 File "D:\Anaconda3.7\envs\pytorch_gpu\lib\site-packages\MNN\tools\mnnconvert.py", line 49, in main dst_model_size = os.path.getsize(arg_dict["MNNModel"]) / 1024.0 / 1024.0 File "D:\Anaconda3.7\envs\pytorch_gpu\lib\genericpath.py", line 50, in getsize return os.stat(filename).st_size FileNotFoundError: [WinError 2] 系统找不到指定的文件。: 'model_trace.mnn'

我试过将onnx和tflite转换为mnn,都可以正常运行,但torch到mnn一直不行。找不到model_trace.mnn这个文件感觉很奇怪,这个文件不是输出的文件吗?

初学者,如有不对,敬请指正

puxuntu avatar Apr 16 '24 10:04 puxuntu

windows 上不支持 torchscripts 的转换,可以通过 onnx 转 pytorch 的模型。也可以用 linux 系统编译 mnn 并打开 torchscripts 支持

jxt1234 avatar Apr 16 '24 11:04 jxt1234

Marking as stale. No activity in 60 days.

github-actions[bot] avatar Jun 16 '24 09:06 github-actions[bot]