主要内容

exportONNXNetwork

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

説明

exportONNXNetwork (文件名は,onnx™形式のファル文件名に重みを使用して深層学習ネットワ,クをエクスポ,トします。文件名が存在する場合,exportONNXNetworkはファ@ @ルを上書きします。

この関数には,ONNX模型格式的深度学习工具箱™转换器サポ,トパッケ,ジが必要です。このサポートパッケージがインストールされていない場合,関数によってダウンロード用リンクが表示されます。

exportONNXNetwork (文件名名称=值は1つ以上の名前と値の引数で指定された追加オプションを使用してネットワークをエクスポートします。

すべて折りたたむ

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

网=挤压网
net = DAGNetwork with properties: Layers: [68×1 nnet.cnn.layer.Layer] Connections: [75×2 table] InputNames: {'data'} OutputNames: {'ClassificationLayer_predictions'}

ネットワ,クsqueezenet.onnxというonnx形式のファルとしてエクスポトします。ファ▪▪ルを現在のフォルダ▪▪に保存します。深度学习工具箱为ONNX模型格式转换器サポートパッケージがインストールされていない場合,必要なサポートパッケージへのリンクがexportONNXNetworkによってアドオンエクスプロ,ラ,に表示されます。サポトパッケージをインストールするには、リンクをクリックして、[huawei @ huawei @ huawei @ huawei @ huawei @ huawei]をクリックします。

文件名=“squeezenet.onnx”;exportONNXNetwork(净、文件名)

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

exportONNXNetworkを使用して,出力層を含む層グラフまたは出力層を含まない層グラフをONNX形式にエクスポートします。

事前学習済みSqueezeNet畳み込みニューラルネットワークを読み込み,事前学習済みネットワークを層グラフに変換します。

网=挤压网;lgraph1 = layerGraph(net)
lgraph1 = LayerGraph与属性:图层:[68×1 nnet.cnn.layer.Layer]连接:[75×2 table] InputNames: {'data'} OutputNames: {'ClassificationLayer_predictions'}

層グラフを解析します。analyzeNetworkは,ネットワークアーキテクチャの対話型プロット,およびネットワーク層についての情報が含まれる表を表示します。Onnx形式にエクスポ,トする前に,層グラフlgraph1でエラ,や問題を検出することもできます。lgraph1はエラ,フリ,です。

analyzeNetwork (lgraph1)

層グラフlgraph1を,squeezeLayers1.onnxという名前の現在のフォルダにonnx形式のファルとしてエクスポトします。

exportONNXNetwork (lgraph1“squeezeLayers1.onnx”

これで,onnxンポトをサポトする深層学習フレムワクにsqueezeLayers1.onnxファ@ @ルを@ @ンポ@ @トできます。

lgraph1の出力層を削除します。

lgraph2 = removeLayers(lgraph1,lgraph1. layers (end).Name)
lgraph2 = LayerGraph with properties: Layers: [67×1 nnet.cnn.layer.Layer] Connections: [74×2 table] InputNames: {'data'} OutputNames: {1×0 cell}

analyzeNetworkを使用して,層グラフlgraph2を解析します。層グラフの解析により、欠落している出力層と未接続の出力が検出されます。lgraph2はまだonnx形式にエクスポ,トできます。

analyzeNetwork (lgraph2)

層グラフlgraph2を,squeezeLayers2.onnxという名前の現在のフォルダにonnx形式のファルとしてエクスポトします。

exportONNXNetwork (lgraph2“squeezeLayers2.onnx”

これで,onnxンポトをサポトする深層学習フレムワクにsqueezeLayers2.onnxファ@ @ルを@ @ンポ@ @トできます。

入力引数

すべて折りたたむ

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

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

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

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

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

  • 層グラフをdlnetworkへの入力引数として使用して,LayerGraphオブジェクトをdlnetworkオブジェクトに変換する。空のパラメ,タ,は自動的に初期化されます。

  • trainNetworkを使用して,LayerGraphオブジェクトを学習済みのDAGNetworkオブジェクトに変換する。層グラフをtrainNetworkへの入力引数として使用します。

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

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

例:“network.onnx”

名前と値の引数

オプションの引数のペアをName1 = Value1,…,以=家として指定します。ここで,的名字は引数名で,价值は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

例:exportONNXNetwork(网、文件名、NetworkName =“my_net”)はネットワ,クをエクスポ,トし,保存したonnxネットワ,クのネットワ,ク名として“my_net”を指定します。

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

例:NetworkName = " my_squeezenet "

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

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

例:OpsetVersion = 6

Onnxネットワクのバッチサズ。[]または正の整数として指定します。BatchSize[]として指定すると,onnxネットワ,クのバッチサ,ズは動的になります。BatchSizeを正の整数kとして指定すると,ONNXネットワ,クのバッチサeconnxズはkに固定されます。

例:BatchSize = 10

制限

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

    • この関数は,ONNX中間表現version 7をサポ,トしています。

    • この関数は,onnx演算子セット6 ~ 14をサポ,トしています。

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

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

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

メモ

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

詳細

すべて折りたたむ

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

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

ヒント

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

参照

[1]开放神经网络交换。https://github.com/onnx/

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

バ,ジョン履歴

R2018aで導入