Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

exportONNXNetwork

ONNX モデル形式へのネットワークのエクスポート

説明

exportONNXNetwork(net,filename) は、ONNX™ 形式のファイル filename に重みを使用して深層学習ネットワーク net をエクスポートします。filename が存在する場合、exportONNXNetwork はファイルを上書きします。

この関数には、Deep Learning Toolbox™ Converter for ONNX Model Format サポート パッケージが必要です。このサポート パッケージがインストールされていない場合、関数によってダウンロード用リンクが表示されます。

exportONNXNetwork(net,filename,Name,Value) は、1 つ以上の名前と値のペアの引数で指定された追加オプションを使用してネットワークをエクスポートします。

すべて折りたたむ

事前学習済み SqueezeNet 畳み込みニューラル ネットワークを読み込みます。

net = squeezenet
  DAGNetwork with properties:

         Layers: [68×1 nnet.cnn.layer.Layer]
    Connections: [75×2 table]
     InputNames: {'data'}
    OutputNames: {'ClassificationLayer_predictions'}

ネットワークを squeezenet.onnx という名前の現在のフォルダーに ONNX 形式のファイルとして現在のフォルダーにエクスポートします。Deep Learning Toolbox Converter for ONNX Model Format サポート パッケージがインストールされていない場合、関数によってアドオン エクスプローラーに必要なサポート パッケージへのリンクが表示されます。サポート パッケージをインストールするには、リンクをクリックして、[インストール] をクリックします。

filename = 'squeezenet.onnx';
exportONNXNetwork(net,filename)

これで、ONNX インポートをサポートする深層学習フレームワークに squeezenet.onnx ファイルをインポートできます。

入力引数

すべて折りたたむ

学習済みのネットワークまたはネットワーク層のグラフ。SeriesNetworkDAGNetworkdlnetwork、または layerGraph オブジェクトとして指定します。

学習済みのネットワーク (SeriesNetworkDAGNetwork、または dlnetwork) は、次の方法で取得できます。

  • 事前学習済みのネットワークのインポート。たとえば、関数 googlenet を使用します。

  • カスタム ネットワークの学習。trainNetwork を使用して、SeriesNetwork または DAGNetwork に学習させます。カスタム学習ループを使用して dlnetwork に学習させます。

layerGraph オブジェクトはネットワーク層のグラフです。このグラフの一部の層パラメーターは空である可能性があります (たとえば、畳み込み層の重みとバイアス、およびバッチ正規化層の平均と分散)。exportONNXNetwork への入力引数として layerGraph を使用する前に、ランダムな値を割り当てて空のパラメーターを初期化します。または、エクスポートする前に次のいずれかを実行できます。

  • layerGraphdlnetwork への入力引数として使用して、layerGraphdlnetwork に変換する。空のパラメーターは自動的に初期化されます。

  • trainNetwork を使用して、layerGraph を学習済みの DAGNetwork に変換する。trainNetwork に対する layers 入力引数として layerGraph を使用します。

analyzeNetwork を使用して、ONNX ネットワークにエクスポートする前に、学習済みネットワークまたはネットワーク層のグラフでエラーや問題を検出できます。exportONNXNetwork では、SeriesNetworkDAGNetwork、および dlnetwork がエラー フリーである必要があります。exportONNXNetwork は、出力層がないか結合されていない layerGraph をエクスポートすることを許可します。

ファイルの名前。文字ベクトルまたは string スカラーとして指定します。

例: 'network.onnx'

名前と値のペアの引数

オプションの引数 Name,Value のコンマ区切りペアを指定します。Name は引数名で、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を、任意の順番で指定できます。

例: exportONNXNetwork(net,filename,'NetworkName','my_net') はネットワークをエクスポートし、保存した ONNX ネットワークのネットワーク名として 'my_net' を指定します。

保存したファイルに格納する ONNX ネットワークの名前。文字ベクトルまたは string スカラーとして指定します。

例: 'my_squeezenet'

エクスポートしたモデルで使用する ONNX 演算子セットのバージョン。既定の演算子セットでエクスポートしようとするネットワークがサポートされていない場合、新しいバージョンを使用してみてください。エクスポートされたネットワークを別のフレームワークにインポートし、エクスポート時にインポーターによってサポートされない演算子セットを使用した場合、インポートが失敗する可能性があります。

適切な演算子セットのバージョンを使用していることを確認するには、ONNX 演算子のドキュメント[3]を参照してください。たとえば、'OpsetVersion',9 は、maxUnpooling2dLayerMaxUnpool-9 ONNX 演算子にエクスポートします。

例: 6

制限

  • exportONNXNetwork でサポートされる ONNX のバージョンは、次のとおりです。

    • この関数は、ONNX 中間表現バージョン 6 をサポートしています。

    • この関数は、ONNX 演算子セット 6、7、8、および 9 をサポートしています。

  • exportONNXNetwork は、学習オプション、学習率係数、正則化係数など、ネットワーク学習に関連する設定またはプロパティをエクスポートしません。

  • ONNX 形式がサポートしない層 (ONNX のエクスポートでサポートされている層を参照) を含むネットワークをエクスポートする場合、exportONNXNetwork は、サポートされない層の代わりにプレースホルダー ONNX 演算子を保存し、警告を返します。プレースホルダー演算子が使用された ONNX ネットワークを他の深層学習フレームワークにインポートすることはできません。

  • MATLAB® と ONNX はアーキテクチャが異なるため、エクスポートされたネットワークと元のネットワークは構造が異なる場合があります。

メモ

エクスポートしたネットワークをインポートする場合、元のネットワークとは異なるネットワークの層が再インポートされ、サポート対象外となる可能性があります。

詳細

すべて折りたたむ

ONNX のエクスポートでサポートされている層

exportONNXNetwork は以下をエクスポートできます。

ヒント

  • 多入力多出力の学習済み MATLAB 深層学習ネットワークを、ONNX モデル形式にエクスポートできます。多入力多出力の深層学習ネットワークの詳細については、多入力および多出力ネットワークを参照してください。

参照

[1] Open Neural Network Exchange. https://github.com/onnx/.

[2] ONNX. https://onnx.ai/.

R2018a で導入