Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TorchScript to MNN转换出错 #2830

Open
puxuntu opened this issue Apr 16, 2024 · 1 comment
Open

TorchScript to MNN转换出错 #2830

puxuntu opened this issue Apr 16, 2024 · 1 comment
Labels
question Further information is requested

Comments

@puxuntu
Copy link

puxuntu commented Apr 16, 2024

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

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这个文件感觉很奇怪,这个文件不是输出的文件吗?

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

@jxt1234
Copy link
Collaborator

jxt1234 commented Apr 16, 2024

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

@jxt1234 jxt1234 added the question Further information is requested label Apr 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants