AudioClassification-Pytorch icon indicating copy to clipboard operation
AudioClassification-Pytorch copied to clipboard

模型训练完之后,如何使用onnxruntime部署?

Open AICVHub opened this issue 1 year ago • 3 comments

作者您好,很感谢您的开源工作,您这项工作很棒!

我使用自己的数据集训练之后,想用onnx部署,因此,关于数据预处理,有个问题想咨询下: 我看您用了torchaudio里面的一些方法进行特征提取:import torchaudio.compliance.kaldi as Kaldi from torchaudio.transforms import MelSpectrogram, Spectrogram, MFCC; 那么,使用onnxruntime推理时,如何用其他库(比如librosa)里面的方法替代上面torchaudio的特征提取方法?如果替换,是否有可能出现提取的特征有差别,从而导致推理效果不佳? 您有无什么方法可以使得特征提取这一步能够脱离torchaudio框架?

期待您的回复!

AICVHub avatar Jul 23 '24 08:07 AICVHub

用其他代替可能会有差异。你试试看能不能将这些预处理也导出为onnx,它们本质也是torch.nn.Mould

yeyupiaoling avatar Jul 23 '24 12:07 yeyupiaoling

用其他代替可能会有差异。你试试看能不能将这些预处理也导出为onnx,它们本质也是torch.nn.Mould

感谢您的回复~ 我试过了将特征提取部分也放到forward里面,但是导出onnx时,会报错: torch.onnx.errors.UnsupportedOperatorError: Exporting the operator 'aten::fft_rfft' to ONNX opset version 14 is not supported. Please feel free to request support or submit a pull request on PyTorch GitHub: https://github.com/pytorch/pytorch/issues.

AICVHub avatar Jul 24 '24 05:07 AICVHub

想到一个方案:训练之前,自行使用librosa等非torch的方法做特征提取,然后训练之后就可以正常导出onnx进行部署了

AICVHub avatar Jul 25 '24 08:07 AICVHub

@AICVHub 那你这样要修改源码训练才行

yeyupiaoling avatar Aug 14 '24 14:08 yeyupiaoling