メインコンテンツまでスキップ

モデルの互換性

SiMa.ai コンパイルツールチェーンは、ONNX モデルをインポートし、機械学習アクセラレータ (MLA) 用のオペレーターを準備します。 Modalix 用にモデルを準備する前に、オペレーターのサポート状況を確認するために、このページを使用してください。

サポートされているオペレーター​

表を検索して、オペレーターと精度スキームごとのMLAコンパイラのサポート状況を確認してください。INT8 はMLAで動作します。BF16 はModalix(開発者向けプレビュー版)で利用可能です。5D は、5D (N, D, H, W, C) テンソルを受け取るオペレーターを示します。Opset は、ONNX のOpsetバージョンです。検索には、制約テキストとオペレーター名の両方を検索し、各オペレーターは onnx.ai の参照ページにリンクされます。

62 of 62 operators
Add✅✅—14
ArgMax✅✅—13
AveragePool✅✅—11
BatchNorm———15
BroadcastTo✅✅✅—
Clip✅✅—13
Concat✅✅✅13
Conv✅✅✅11
ConvTranspose✅✅✅11
CumSum———14
DepthToSpace✅✅—13
Div✅——14
Einsum✅✅—12
Elu✅——6
Erf✅✅—13
Exp✅——13
Gather❌✅—13
Gelu✅——20
GlobalAveragePool✅✅——
GlobalMaxPool✅✅——
GridSample—✅—16
HardSigmoid✅——6
HardSwish✅——14
InstanceNorm✅✅✅6
LayerNorm✅✅—17
LeakyRelu✅——16
Log✅——13
Log10✅———
Log2✅———
LpNormalization✅✅—22
LRN✅——13
MatMul✅✅—13
MaxPool✅✅—12
Mul✅✅—14
Pad✅✅—13
Pow✅✅✅15
PRelu✅✅—16
QuickGelu✅✅✅—
Reciprocal✅——13
ReduceL2✅✅—18
ReduceMax✅✅—13
ReduceMean✅——13
ReduceMin❌❌—13
ReduceSum✅✅—13
Relu✅✅—14
Reshape✅✅✅14
Resize✅✅—13
RMSNorm✅✅—23
Rsqrt✅———
Sigmoid✅✅—13
Slice✅✅—13
Softmax✅✅—13
Softplus✅——1
SpaceToDepth✅✅—13
Split✅✅—13
Sqrt✅——13
Sub✅✅—14
Swish✅✅—24
Take✅✅——
Tanh✅——13
Transpose✅✅—13
Variance✅✅✅—

制約​

以下の演算子は、以下の制限付きでサポートされています。ここでリストされていない演算子は、追加の制約はありません。制約が「ONNX」属性を指定する場合、モデルのエクスポート時に適切に設定してください。

  • Add — 入力は同じ形状でなければなりません。1つの入力がスカラーであるか、または両方をブロードキャスト可能である必要があります。
  • ArgMax — チャンネル軸のみに適用され、int32 を返す(int64ではなく)、これはONNX仕様のものです。 したがって、下流の消費者には、この点を考慮して対応する必要があります。
  • AveragePool — count_include_pad=True を設定し、dilations を 1 に設定します。カーネルサイズは各空間次元で 128 未満である必要があります。グローバルなプーリングにはサイズ制限はありません。
  • BatchNorm — 推論モードでのエクスポートのみをサポート。トレーニングモードはサポートされていません。
  • Concat — バッチ軸への連結はサポートされていません。
  • Conv — 「dilations」は1から63の間、「strides」は1から31の間でなければなりません。
  • ConvTranspose — dilations の値を 1 に維持してください。この演算子は、深層畳み込みまたは group=1 を使用する必要があります。ストライドは 1、2、4、8、16、または深層畳み込みの場合に 1 または 2 に設定する必要があります。
  • CumSum — 前向き方向にのみ合計を計算し、その合計は正確に1つの軸に沿って行われ、その軸は一定である必要があります。軸の長さは最大で257個の要素までです。
  • Div — 入力は同じ形状でなければなりません。1つの入力がスカラーであるか、または両方をブロードキャスト可能である必要があります。
  • Einsum — ちょうど2つの入力テンソルを受け取ります。数式内のすべてのインデックスは、少なくとも2つの項に現れ、かつ1つの項内では1回しか現れない必要があります。例えば、jk,k->k はサポートされていません。なぜなら、j が1つの項にしか現れていないからです。また、jk,kk->j はサポートされていません。なぜなら、k が同じ項内で2回現れているからです。
  • 収集 — indices は定数であり、スカラーまたは1次元のテンソルである必要があります。
  • Gelu — 厳密なフォーマルのみをサポートします。 approximate="none" を設定してください。
  • GridSample — mode を linear に設定し、padding_mode="reflection" を使用しないでください。 サンプリングは、幅軸方向のみをサポートしています。
  • InstanceNorm — 4D および 5D テンソルでのみサポートされています。
  • LayerNorm — stash_type=10 (FLOAT16) のサポートはされていません。元の設定のままにしておいてください。
  • Lp正規化 — 以下の条件を満たす必要があります p=2, L2ノルムもサポートされています。 p=1 そうではありません。
  • MaxPool — カーネルサイズを各空間次元で128未満に設定し、オプションのインデックス出力は不要です。dilations は 1 に設定してください。グローバルなプーリングにはサイズ制限はありません。
  • Mul — 入力は同じ形状でなければなりません。1つの入力がスカラーであるか、または両方をブロードキャスト可能である必要があります。
  • パド — た​​け constant 0 のパディング値を持つモードがサポートされており、最大 2 つの次元に非ゼロのパディング幅を持つことができます。
  • Pow — 指数は、0.5、-0.5、2、または3の定数スカラーである必要があります。
  • PRelu — α スロープ入力は 1 次元テンソルでなければなりません。
  • ReduceL2 — L2正規化の一部としてのみサポートされます。そのため、必ずDivの後に使用し、それらをペアとして扱う必要があります。単独のReduceL2はサポートされません。
  • ReduceMean — 1つの軸に対して縮小を行う場合、その軸は空間的な軸である必要があります。すべての空間軸に対して縮小を行う場合、サイズには制限はありません。ただし、各空間軸は128要素以下である必要があります。
  • ReduceMin — 現在はサポートされていません。
  • ReduceSum — 1つの軸に対して削減を行う場合、その軸は空間的な軸である必要があります。すべての空間軸に対して削減を行う場合、サイズには制限はありません。ただし、各空間軸は128要素以下である必要があります。
  • 形状を再定義 — allowzero を 0 に設定し、空でないターゲット形状を指定します。
  • リサイズ — nearest と linear のみサポートされており、coordinate_transformation_mode="tf_crop_and_resize" はサポートされていません。 linear では、任意のスケールファクターを使用できますが、INT8 の場合、63 より大きいスケールファクターを使用すると精度が低下する可能性があります。 nearest では、スケールファクターは 2 のべき乗であるか、または両方の次元に均等に適用される偶数で、coordinate_transformation_mode="half_pixel" および床算術を使用する必要があります。 1 つの入力テンソルのみをサポートしています。
  • RMSNorm — stash_type=10 (FLOAT16) のサポートはされていません。元の設定のままにしておいてください。
  • スライス — ステップは正の値でなければなりません。負のステップはサポートされていません。
  • Softmax — チャンネル軸方向のみをサポート。
  • Sub — 入力は同じ形状でなければなりません。1つの入力がスカラーであるか、または両方をブロードキャスト可能である必要があります。
  • Take — インデックスは一定の値でなければならず、スカラーまたは1次元のテンソルである必要があります。
  • 転置 — バッチ軸を移動するような置換はサポートされていません。
  • ばらつき — 全ての空間次元に対して計算されます。