メインコンテンツまでスキップ
バージョン: v2509

nn.Mooduieを継承したクラスごとの変換

  • AcuiRTではnn.Moduleを継承したクラスごとにモデルの変換を行うことができます。各モジュールごとに変換方法・自動化の設定が必要です。
    • rt_modeで 各モジュールごとの変換方法を指定します。 現在のバージョンでは以下の変換方法がサポートされています。
      • onnx: ONNX形式で出力後、TensorRTモデルに変換
      • torch2trt: torch2trtを用いて直接TensorRTモデルに変換
    • autoフラグを有効にした場合、AcuiRTはモジュール内の変換を自動的にフォールバックし、変換可能な最大のモジュールを変換します。

設定例

  • 以下の例はmodule_1とmodule_2の2つのモジュールを持つモデルを想定しています。
    • module_1はONNX形式で出力後、int8とfp16の量子化を適用してTensorRTモデルに変換します。また、module_1の変換に失敗した場合は自動的にmodule_1の子モジュールに対して変換を試みます(フォールバック)。
    • module_2はtorch2trtによる変換を用い、fp16の量子化のみ行います。module_2の変換に失敗した場合はmodule_2の子モジュールに対する変換は行いません。
model = dict(
module_1 = dict(
rt_mode="onnx",
int8=True,
fp16=True,
auto=True,
),
module_2 = dict(
rt_mode="torch2trt",
int8=False,
fp16=True,
)
)