PyTorch QuartzNet モデルの変換¶
危険
ここで説明されているコードは非推奨になりました。従来のソリューションの適用を避けるため使用しないでください。下位互換性を確保するためにしばらく保持されますが、最新のアプリケーションでは使用してはなりません。
このガイドでは、非推奨となった変換方法について説明します。新しい推奨方法に関するガイドは、Python チュートリアルに記載されています。
NeMo プロジェクトは QuartzNet モデルを提供します。
事前トレーニングされた QuartzNet モデルをダウンロード¶
事前トレーニングされたモデルをダウンロードするには、NeMo 音声モデルカタログを参照してください。ここでは、ONNX 形式で QuartzNet を取得する方法について説明します。
指示に従って NeMo ツールキットをインストールします。
-
次のコードを実行します。
import nemo import nemo.collections.asr as nemo_asr quartznet = nemo_asr.models.EncDecCTCModel.from_pretrained(model_name="QuartzNet15x5Base-En") # Export QuartzNet model to ONNX format quartznet.decoder.export('decoder_qn.onnx') quartznet.encoder.export('encoder_qn.onnx') quartznet.export('qn.onnx')
このコードは、
encoder_qn.onnx
、decoder_qn.onnx
、qn.onnx
の 3 つの ONNX モデルファイルを生成します。それぞれdecoder
、encoder
、およびdecoder(encoder(x))
モデルに相当します。
ONNX QuartzNet モデルから IR への変換¶
複合モデルを使用する場合:
mo --input_model <MODEL_DIR>/qt.onnx --input_shape [B,64,X]
別のモデルを使用する場合:
mo --input_model <MODEL_DIR>/encoder_qt.onnx --input_shape [B,64,X]
mo --input_model <MODEL_DIR>/decoder_qt.onnx --input_shape [B,1024,Y]
形状はオーディオファイルのメルスペクトログラムの長さによって決まります: B
- バッチの次元、X
- 入力の長さに基づく次元、Y
- エンコーダーの出力によって決定 (通常は X / 2
)。