主要内容

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

importONNXNetwork

事前学習済みのONNXネットワクのンポト

説明

= importONNXNetwork (modelfile)は,ファmodelfileから事前学習済みのONNX™(打开)神经网络交换ネットワークをインポートします。この関数は,ネットワ,クDAGNetworkオブジェクトまたはdlnetworkオブジェクトとして返します。

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

メモ

既定では,ソフトウェアがonnx演算子をそれと等価な組み込みのmatlab®層に変換できないときに,importONNXNetworkがカスタム層の生成を試みます。ソフトウェアによる変換がサポトされている演算子の一覧にいては,組み込みのmatlab層への変換がサポ,トされているonnx演算子を参照してください。

importONNXNetworkは,生成されたカスタム層をパッケ,ジ+modelfileに保存します。

importONNXNetworkは,組み込みのMATLAB層への変換がサポートされていない各ONNX演算子のカスタム層を自動生成しません。サポトされていない層の処理方法の詳細にいては,代替機能を参照してください。

= importONNXNetwork (modelfile名称=值)は1つ以上の名前と値の引数で指定された追加オプションを使用して,事前学習済みのONNXネットワークをインポートします。たとえば,OutputLayerType =“分类”はネットワ,クをDAGNetworkオブジェクトとしてインポートしますが,その際,インポートされたネットワークアーキテクチャの最初の出力分岐の末尾に分類出力層が追加されます。

すべて折りたたむ

深度学习工具箱为ONNX模型格式转换器サポートパッケージをダウンロードしてインストールします。

コマンドラ@ @ンでimportONNXNetworkと入力します。

importONNXNetwork

深度学习工具箱为ONNX模型格式转换器がインストールされていない場合,必要なサポートパッケージへのリンクがこの関数によってアドオンエクスプローラーに表示されます。サポトパッケジをンストルするには,リンクをクリックして,[huawei @ huawei @ huawei @ huawei @ huawei @ huawei]をクリックします。コマンドラ▪▪ンでモデルファ▪▪ル“simplenet.onnx”からネットワ,クを,。サポトパッケジがンストルされている場合,この関数はDAGNetworkオブジェクトを返します。

modelfile =“simplenet.onnx”;net = importONNXNetwork(modelfile)
net = DAGNetwork with properties: Layers: [9×1 nnet.cnn.layer.Layer] Connections: [8×2 table] InputNames: {'imageinput'} OutputNames: {'ClassificationLayer_softmax1002'}

ネットワ,クア,キテクチャをプロットします。

情节(净)

事前学習済みのonnxネットワ,クをDAGNetworkジを分類します。

squeezenet畳み込みニュ,ラルネットワ,クのonnxモデルを生成します。

挤压板=挤压板;exportONNXNetwork (squeezeNet“squeezeNet.onnx”);

クラス名を指定します。

ClassNames = squeezeNet.Layers(end).Classes;

事前学習済みのsqueezeNet.onnxモデルを。既定では,importONNXNetworkはネットワ,クをDAGNetworkオブジェクトとして▪▪ンポ▪▪トします。

net = importONNXNetwork(“squeezeNet.onnx”、类=一会)
net = DAGNetwork with properties: Layers: [70×1 nnet.cnn.layer.Layer] Connections: [77×2 table] InputNames: {'data'} OutputNames: {'ClassificationLayer_prob'}

analyzeNetwork(净)

分類するメジを読み取り,そのメジのサズを表示します。このメジは384 × 512ピクセルで3のカラチャネル(RGB)があります。

I = imread(“peppers.png”);大小(我)
ans =1×3384 512 3

@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @メ,ジを表示します。

I = imresize(I,[227 227]);imshow(我)

@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @

分类(net,I)
标签=分类甜椒

事前学習済みのonnxネットワ,クをdlnetworkジを分類します。

squeezenet畳み込みニュ,ラルネットワ,クのonnxモデルを生成します。

挤压板=挤压板;exportONNXNetwork (squeezeNet“squeezeNet.onnx”);

クラス名を指定します。

ClassNames = squeezeNet.Layers(end).Classes;

事前学習済みのsqueezeNet.onnxモデルをdlnetworkオブジェクトとして▪▪ンポ▪▪トします。

net = importONNXNetwork(“squeezeNet.onnx”TargetNetwork =“dlnetwork”)
net = dlnetwork with properties: Layers: [70×1 nnet.cnn.layer.Layer] Connections: [77×2 table] Learnables: [52×3 table] State: [0×3 table] InputNames: {'data'} OutputNames: {'probOutput'} Initialized: 1 .初始化

分類するメジを読み取り,そのメジのサズを表示します。このメジは384 × 512ピクセルで3のカラチャネル(RGB)があります。

I = imread(“peppers.png”);大小(我)
ans =1×3384 512 3

@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @メ,ジを表示します。

I = imresize(I,[227 227]);imshow(我)

メ,ジをdlarrayに変換します。メ,ジを次元“SSCB”(空间,空间,通道,批次)で書式設定します。この場合,バッチサ▪▪ズは1であるため,バッチサ▪▪ズを省略できます(“SSC”)。

I_dlarray = dlarray(single(I)),“SSCB”);

サンプル▪▪メ▪ジを分類し,予測されたラベルを見▪▪けます。

prob = predict(net,I_dlarray);[~,label] = max(prob);

分類結果を表示します。

类名(标签)
ans =分类甜椒

事前学習済みのonnxネットワ,クをDAGNetworkジを分類します。インポートしたネットワークには,組み込みのMATLAB層への変換がサポートされていないONNX演算子が含まれています。これらの演算子を。

この例では,補助関数findCustomLayersを使用します。この関数のコ,ドを見るには,補助関数を参照してください。

ONNX模型动物园の演算子セット9と共にンポトするモデルファルを,shufflenetとして指定します。shufflenetは,ImageNetデータベースの100年万枚を超えるイメージで学習させた畳み込みニューラルネットワークです。結果として、このネットワ、クは広範囲の、メ、ジに対する豊富な特徴表現を学習しています。このネットワークは,イメージを1000個のオブジェクトカテゴリ(キーボード,マウス,鉛筆,多くの動物など)に分類できます。

modelfile =“shufflenet - 9. onnx”

同じくImageNetデタベスのメジで学習させたsqueezenetから,クラス名を。

挤压板=挤压板;ClassNames = squeezeNet.Layers(end).ClassNames;

shufflenetを▪▪ンポ▪▪トします。既定では,importONNXNetworkはネットワ,クをDAGNetworkオブジェクトとして▪▪ンポ▪▪トします。インポートしたネットワークに,組み込みのMATLAB層への変換がサポートされていないONNX演算子が含まれている場合,importONNXNetworkは,これらの演算子の代わりにカスタム層を自動生成できます。importONNXNetworkは,生成した各カスタム層を,現在のフォルダ,内のパッケ,ジ+ shufflenet_9に個別の00ファ@ @ルとして保存します。名前と値の引数PackageNameを使用して,パッケ,ジ名を指定します。

net = importONNXNetwork(modelfile,...类=一会PackageName =“shufflenet_9”)
net = DAGNetwork with properties: Layers: [173×1 nnet.cnn.layer.Layer] Connections: [188×2 table] InputNames: {'gpu_0_data_0'} OutputNames: {'ClassificationLayer_gpu_0_softmax_1'}

補助関数findCustomLayersを使用して,自動生成されたカスタム層の▪▪ンデックスを見▪▪け,このカスタム層を表示します。

ind = findCustomLayers(net。层,' + shufflenet_9 ');net.Layers(印第安纳州)
ans = 16×1带有图层的图层数组:1 'Reshape_To_ReshapeLayer1004' shufflenet_9。Reshape_To_ReshapeLayer1004 shufflenet_9。重塑_To_ReshapeLayer1004 2 'Reshape_To_ReshapeLayer1009' shufflenet_9.Reshape_To_ReshapeLayer1009 shufflenet_9.Reshape_To_ReshapeLayer1009 3 'Reshape_To_ReshapeLayer1014' shufflenet_9.Reshape_To_ReshapeLayer1014 shufflenet_9.Reshape_To_ReshapeLayer1014 4 'Reshape_To_ReshapeLayer1019' shufflenet_9.Reshape_To_ReshapeLayer1019 shufflenet_9.Reshape_To_ReshapeLayer1019 5 'Reshape_To_ReshapeLayer1024' shufflenet_9.Reshape_To_ReshapeLayer1024 shufflenet_9.Reshape_To_ReshapeLayer1024 6 'Reshape_To_ReshapeLayer1029' shufflenet_9.Reshape_To_ReshapeLayer1029 shufflenet_9.Reshape_To_ReshapeLayer1029 7 'Reshape_To_ReshapeLayer1034' shufflenet_9.Reshape_To_ReshapeLayer1034 shufflenet_9.Reshape_To_ReshapeLayer1034 8 'Reshape_To_ReshapeLayer1039' shufflenet_9.Reshape_To_ReshapeLayer1039 shufflenet_9.Reshape_To_ReshapeLayer1039 9 'Reshape_To_ReshapeLayer1044' shufflenet_9.Reshape_To_ReshapeLayer1044 shufflenet_9.Reshape_To_ReshapeLayer1044 10 'Reshape_To_ReshapeLayer1049' shufflenet_9.Reshape_To_ReshapeLayer1049 shufflenet_9.Reshape_To_ReshapeLayer1049 11 'Reshape_To_ReshapeLayer1054' shufflenet_9.Reshape_To_ReshapeLayer1054 shufflenet_9.Reshape_To_ReshapeLayer1054 12 'Reshape_To_ReshapeLayer1059' shufflenet_9.Reshape_To_ReshapeLayer1059 shufflenet_9.Reshape_To_ReshapeLayer1059 13 'Reshape_To_ReshapeLayer1064' shufflenet_9.Reshape_To_ReshapeLayer1064 shufflenet_9.Reshape_To_ReshapeLayer1064 14 'Reshape_To_ReshapeLayer1069' shufflenet_9.Reshape_To_ReshapeLayer1069 shufflenet_9.Reshape_To_ReshapeLayer1069 15 'Reshape_To_ReshapeLayer1074' shufflenet_9.Reshape_To_ReshapeLayer1074 shufflenet_9.Reshape_To_ReshapeLayer1074 16 'Reshape_To_ReshapeLayer1079' shufflenet_9.Reshape_To_ReshapeLayer1079 shufflenet_9.Reshape_To_ReshapeLayer1079

分類するメジを読み取り,そのメジのサズを表示します。このイメージは792 x 1056ピクセルで,3つのカラーチャネル(RGB)があります。

I = imread(“peacock.jpg”);大小(我)
ans =1×3792 1056

@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @メ,ジを表示します。

I = imresize(I,[224 224]);imshow(我)

shufflenetへの入力をさらに前処理する必要があります(詳細にいては,ONNX模型动物园のShuffleNetを参照してください)。メ,ジを再スケーリングします。学習イメージの平均を減算し、学習イメージの標準偏差で除算して、イメージを正規化します。

I = rescale(I,0,1);meanIm = [0.485 0.456 0.406];stdIm = [0.229 0.224 0.225];I = (I - remodeling (meanIm,[1 1 3]))。/重塑(stdIm,[1 1 3]);imshow(我)

@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @

分类(net,I)
标签=分类孔雀

補助関数

この節では,この例で使用されている補助関数findCustomLayersのコ,ドを示します。findCustomLayersは,importONNXNetworkによって自動生成されたカスタム層の指数を返します。

函数index = findCustomLayers(layers,PackageName) s = what([‘。’PackageName]);索引= 0(1,长度(s.m));I = 1:长度(层数)J = 1:长度(s.m)如果strcmpi(类(层(i)), [PackageName(2:结束)“。”S.m {j}(1:end-2)]) index (j) = i;结束结束结束结束

複数の出力をもonnxネットワクをDAGNetworkオブジェクトとして▪▪ンポ▪▪トします。

Onnxモデルファルを指定し,事前学習済みのOnnxモデルをンポトします。既定では,importONNXNetworkはネットワ,クをDAGNetworkオブジェクトとして▪▪ンポ▪▪トします。

modelfile =“digitsMIMO.onnx”;net = importONNXNetwork(modelfile)
net = DAGNetwork with properties: Layers: [19×1 nnet.cnn.layer.Layer] Connections: [19×2 table] InputNames: {'input'} OutputNames: {'ClassificationLayer_sm_1' 'RegressionLayer_fc_1_Flatten'}

このネットワクには2の出力層があります。1は数字を分類する分類層(ClassificationLayer_sm_1), 1は数字の予測角度の平均二乗誤差を計算する回帰層(RegressionLayer_fc_1_Flatten)です。ネットワ,クア,キテクチャをプロットします。

情节(净)标题(“digitsMIMO网络体系结构”)

インポートしたネットワークを使用して予測を行うには,関数预测を使用し,ReturnCategoricalオプションを真正的に設定します。

入力引数

すべて折りたたむ

ネットワクを含むonnxモデルファルの名前。文字ベクトルまたは字符串スカラとして指定します。ファイルは,現在のフォルダーまたはMATLABパス上のフォルダーに含まれていなければならず,そうでなければこのファイルの絶対パスまたは相対パスを含めなければなりません。

例:“cifarResNet.onnx”

名前と値の引数

例:importONNXNetwork (modelfile TargetNetwork =“dagnetwork GenerateCustomLayers = true, PackageName =“CustomLayers”)は,modelfile内のネットワ,クをDAGNetworkオブジェクトとしてンポトし,自動生成したカスタム層を現在のフォルダ内のパッケジ+ CustomLayersに保存します。

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

カスタム層の生成オプション。数値または逻辑1真正的)または合乎逻辑0)として指定します。GenerateCustomLayers真正的に設定した場合,ソフトウェアがONNX演算子をそれと等価な組み込みのMATLAB層に変換できないときに,importONNXNetworkがカスタム層の生成を試みます。importONNXNetworkは,生成した各カスタム層を,+PackageNameで個別の00ファ@ @ルとして保存します。カスタム層を表示または編集するには,関連する00ファ@ @ルを開きます。カスタム層の詳細にいては,深層学習のカスタム層を参照してください。

例:GenerateCustomLayers = false

importONNXNetworkがカスタム層を保存するパッケ,ジの名前。文字ベクトルまたは字符串スカラとして指定します。importONNXNetworkは,カスタム層のパッケ,ジ+PackageNameを現在のフォルダ,に保存します。PackageNameを指定しない場合,importONNXNetworkは,カスタム層を現在のフォルダ,内の+modelfileという名前のパッケ,ジに保存します。パッケジの詳細にいては,パッケ,ジによる名前空間の作成を参照してください。

例:PackageName = " shufflenet_9 "

例:PackageName = " CustomLayers "

深度学习工具箱ネットワクのタゲットタプ。“dagnetwork”または“dlnetwork”として指定します。関数importONNXNetworkは,ネットワ,クDAGNetworkオブジェクトまたはdlnetworkオブジェクトとして▪▪ンポ▪▪トします。

  • ネットワ,クをDAGNetworkオブジェクトとしてインポートする場合,ONNXモデルによって指定された入力層と出力層か,名前と値の引数InputDataFormatsOutputDataFormats,またはOutputLayerTypeを使用して指定した入力層と出力層をに含めなければなりません。

  • ネットワ,クをdlnetworkオブジェクトとしてンポトする場合,importONNXNetworkによっての各出力分岐の末尾にCustomOutputLayerが追加され,場合によっては入力分岐の先頭にCustomInputLayerが追加されます。入力のデタ形式または入力のメジサズが不明の場合は,この関数によりCustomInputLayerが追加されます。これらの層のデタ形式に関するネットワク固有の情報にいては,CustomInputLayerオブジェクトおよびCustomOutputLayerオブジェクトのプロパティを参照してください。深度学习工具箱の入出力データ形式を解釈する方法の詳細については、Onnx入出力テンソルから組み込みのmatlab層への変換を参照してください。

例:TargetNetwork = " dlnetwork "

ネットワ,ク入力のデ,タ形式。文字ベクトル、字符串スカラ,または字符串配列として指定します。importONNXNetworkは,入力デ,タ形式をonnxファeconnxルから解釈しようと試みます。importONNXNetworkが入力デ,タ形式を導出できない場合,名前と値の引数InputDataFormatsが役に立ます。

InputDataFomatsには,onnx入力テンソルの順にデ,タ形式を設定します。たとえば,InputDataFormats“BSSC”として指定した場合,インポートされたネットワークは1つのimageInputLayer入力をもます。importONNXNetworkがONNX入力テンソルのデータ形式を解釈する方法,およびさまざまな深度学习工具箱入力層についてInputDataFormatsを指定する方法の詳細にいては,Onnx入出力テンソルから組み込みのmatlab層への変換を参照してください。

空のデタ形式([]または"")を指定した場合,importONNXNetworkは入力デ,タ形式を自動的に解釈します。

例:InputDataFormats = ' BSSC '

例:InputDataFormats = " BSSC "

例:InputDataFormats = [" bcs”、“”、“公元前”)

例:InputDataFormats = {bcs,[],“公元前”}

デ,タ型:字符|字符串|细胞

ネットワ,ク出力のデ,タ形式。文字ベクトル、字符串スカラ,または字符串配列として指定します。importONNXNetworkは,出力デ,タ形式をonnxファeconnxルから解釈しようと試みます。importONNXNetworkが出力デ,タ形式を導出できない場合,名前と値の引数OutputDataFormatsが役に立ます。

OutputDataFormatsには,onnx出力テンソルの順にデ,タ形式を設定します。たとえば,OutputDataFormats“公元前”として指定した場合,インポートされたネットワークは1つのclassificationLayer出力をもます。importONNXNetworkがONNX出力テンソルのデータ形式を解釈する方法,およびさまざまな深度学习工具箱出力層についてOutputDataFormatsを指定する方法の詳細にいては,Onnx入出力テンソルから組み込みのmatlab層への変換を参照してください。

空のデタ形式([]または"")を指定した場合,importONNXNetworkは出力デ,タ形式を自動的に解釈します。

例:公元前OutputDataFormats = ' '

例:OutputDataFormats =“公元前”

例:OutputDataFormats = [" bcs”、“”、“公元前”)

例:OutputDataFormats = {bcs,[],“公元前”}

デ,タ型:字符|字符串|细胞

最初のネットワク入力の入力メジのサズ。2次元(高度、宽度、渠道)または3次元(高度、宽度、深度、渠道)にそれぞれ対応する,3個または4個の数値のベクトルとして指定します。modelfileのonnxモデルで入力サズが指定されていない場合にのみ,ネットワクはこの情報を使用します。

例:ImageInputSize=[28 28 1](2次元グレスケル入力メジの場合)

例:ImageInputSize=[224 224 3](2次元カラ、入力、メ、ジの場合)

例:ImageInputSize=[28 28 36 3](3次元カラ入力メジの場合)

最初のネットワク出力の層のタプ。“分类”“回归”,または“pixelclassification”として指定します。関数importONNXNetworkは,ClassificationOutputLayerオブジェクト,RegressionOutputLayerオブジェクト,またはpixelClassificationLayer(计算机视觉工具箱)オブジェクトを,ンポトされたネットワクアキテクチャの最初の出力分岐の末尾に追加します。pixelClassificationLayer(计算机视觉工具箱)オブジェクトを追加するには,计算机视觉工具箱™が必要です。modelfileのonnxモデルによって出力層のタaaplプが指定されている場合,またはTargetNetwork“dlnetwork”として指定した場合,importONNXNetworkは名前と値の引数OutputLayerTypeを無視します。

例:OutputLayerType = "回归"

最初のネットワ,ク出力の出力層のクラス。分类ベクトル、字符串配列、文字ベクトルのcell配列,または“汽车”として指定します。“汽车”の場合,importONNXNetworkによってクラスが分类(1:N)に設定されます。ここで,Nはクラスの数です。字符串配列または文字ベクトルの cell 配列strを指定した場合,importONNXNetworkによって出力層のクラスが分类(str, str)に設定されます。TargetNetwork“dlnetwork”として指定した場合,importONNXNetworkは名前と値の引数を無視します。

例:类= {' 0 ',' 1 ',' 3 '}

例:类=分类({‘狗’,‘猫’})

デ,タ型:字符|分类|字符串|细胞

定数畳み込みによる最適化。“深度”“浅”または“没有”として指定します。定数畳み込みは,ONNX演算子からそれと等価な組み込みのMATLAB層への変換の際に,ONNX初期化子(初期定数値)に対して演算を実行することで,インポートされたネットワークアーキテクチャを最適化します。

ソフトウェアにより等価な組み込みのMATLAB層に変換できない演算子がONNXネットワークに含まれている場合(組み込みのmatlab層への変換がサポ,トされているonnx演算子を参照してください),定数畳み込みによる最適化によって,サポートされていない層の数を減らすことができます。FoldConstants“深度”に設定した場合,ネットワ,クに含まれるサポ,トされていない層の数は,この引数を“浅”に設定した場合と同じか,それより少なくなります。ただし,ネットワ,クをインポートする時間が長くなる可能性があります。ネットワーク アーキテクチャの最適化を無効にするには、FoldConstants“没有”に設定します。

定数畳み込みによる最適化を実行しても,サポ,トされていない層がネットワ,クに残っている場合,importONNXNetworkはエラ,を返します。この場合,importONNXLayersまたはimportONNXFunctionを使用してネットワクをンポトできます。詳細にいては,代替機能を参照してください。

例:FoldConstants = "浅"

出力引数

すべて折りたたむ

事前学習済みのonnxネットワ,ク。DAGNetworkオブジェクトまたはdlnetworkオブジェクトとして返されます。

  • ネットワ,クをDAGNetworkオブジェクトとしてンポトするには,TargetNetwork“dagnetwork”として指定します。その後,DAGNetworkオブジェクト上で,関数分类を使用してクラスラベルを予測します。

  • ネットワ,クをdlnetworkオブジェクトとしてンポトするには,TargetNetwork“dlnetwork”として指定します。その後,dlnetworkオブジェクト上で,関数预测を使用してクラスラベルを予測します。正しいデ,タ形式を使用して,入力デ,タをdlarrayとして指定します(詳細にいては,dlarrayの引数fmtを参照してください)。

制限

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

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

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

メモ

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

詳細

すべて折りたたむ

組み込みのMATLAB層への変換がサポ,トされているONNX演算子

importONNXNetworkは,組み込みのMATLAB層への変換を行う次のONNX演算子をサポートします(いくつかの制限があります)。

Onnx演算子 深度学习工具箱の層

添加

additionLayerまたはnnet.onnx.layer.ElementwiseAffineLayer

AveragePool

averagePooling2dLayer

BatchNormalization

batchNormalizationLayer

Concat

concatenationLayer

常数

なし(重みとして.ンポ.ト)

Conv*

convolution2dLayer

ConvTranspose

transposedConv2dLayer

辍学

dropoutLayer

Elu

eluLayer

Gemm

fullyConnectedLayer(onnxネットワ,クが再帰型の場合),またはnnet.onnx.layer.FlattenLayerとそれに続くconvolution2dLayer(それ以外の場合)

GlobalAveragePool

globalAveragePooling2dLayer

GlobalMaxPool

globalMaxPooling2dLayer

格勒乌

gruLayer

InstanceNormalization

“channel-wise”として指定されたnumGroupsをもgroupNormalizationLayer

LeakyRelu

leakyReluLayer

LRN

CrossChannelNormalizationLayer

LSTM

lstmLayerまたはbilstmLayer

MatMul

fullyConnectedLayer(onnxネットワ,クが再帰型の場合),convolution2dLayer(それ以外の場合)

MaxPool

maxPooling2dLayer

Mul

multiplicationLayer

线性整流函数(Rectified Linear Unit)

reluLayerまたはclippedReluLayer

乙状结肠

sigmoidLayer

Softmax

softmaxLayer

总和

additionLayer

双曲正切

tanhLayer

*Conv演算子の属性が,2の要素(p1, p2)のみをもベクトルである場合,importONNXNetworkは,(p1, p2, p1, p2)として指定された名前と値のペアの引数“填充”をもconvolution2dLayerとしてConvを▪▪ンポ▪▪トします。

Onnx演算子 Onnxンポ,タ,カスタム層

剪辑

nnet.onnx.layer.ClipLayer

Div

nnet.onnx.layer.ElementwiseAffineLayer

nnet.onnx.layer.FlattenLayerまたはnnet.onnx.layer.Flatten3dLayer

身份

nnet.onnx.layer.IdentityLayer

ImageScaler

nnet.onnx.layer.ElementwiseAffineLayer

PRelu

nnet.onnx.layer.PReluLayer

重塑

nnet.onnx.layer.FlattenLayer

nnet.onnx.layer.ElementwiseAffineLayer
Onnx演算子 图像处理工具箱™
DepthToSpace depthToSpace2dLayer(图像处理工具箱)
调整 resize2dLayer(图像处理工具箱)またはresize3dLayer(图像处理工具箱)
SpaceToDepth spaceToDepthLayer(图像处理工具箱)
Upsample resize2dLayer(图像处理工具箱)またはresize3dLayer(图像处理工具箱)

ONNX入出力テンソルから組み込みのMATLAB層への変換

importONNXNetworkは,ONNXネットワークの入出力テンソルのデータ形式を解釈し,それらを組み込みのMATLAB入出力層に変換しようと試みます。解釈の詳細にいては,ONNX入力テンソルから深度学习工具箱層への変換およびOnnx出力テンソルからmatlab層への変換の表を参照してください。

深度学习工具箱では,各データ形式の文字は次のラベルのいずれかでなければなりません。

  • 年代-空間

  • C-チャネル

  • B-バッチ観測値

  • T—時間またはシケンス

  • U-指定なし

ONNX入力テンソルから深度学习工具箱層への変換

デ,タ形式 デ,タの解釈 深度学习工具箱の層
Onnx入力テンソル Matlab入力形式 形状 種類
公元前 CB C行n列の配列。ここで,c は特徴の数、n は観測値の数です。 特徴 featureInputLayer
bcsBSSCCSSSSC SSCB

高x宽x c x nの数値配列。ここで,h、w、c、および n は、それぞれイメージの高さ、幅、チャネル数、および観測値の数です。

2次元 imageInputLayer
BCSSSBSSSC包括SSSC SSSCB

高x宽x深x深の数値配列。ここで,h、w、d、c、および n は、それぞれイメージの高さ、幅、深さ、チャネル数、およびイメージの観測値の数です。

3次元 image3dInputLayer
时间待定 认知行为治疗

C x s x nの行列。ここで,c はシーケンスの特徴の数、s はシーケンス長、n はシーケンスの観測値の数です。

ベクトルシ,ケンス sequenceInputLayer
涂层 SSCBT

高x宽x c x s x nの配列。ここで,h、w、c、および n は、それぞれイメージの高さ、幅、およびチャネル数に対応し、s はシーケンス長、n はイメージ シーケンスの観測値の数です。

2次元メジシケンス sequenceInputLayer
TBCSSS SSSCBT

高x宽x深x c x s x nの配列。ここで,h、w、d、および c は、それぞれイメージの高さ、幅、深さ、およびチャネル数に対応し、s はシーケンス長、n はイメージ シーケンスの観測値の数です。

3次元メジシケンス sequenceInputLayer

ONNX出力テンソルからMATLAB層への変換

デ,タ形式 MATLAB層
Onnx出力テンソル Matlab出力形式
公元前时间待定 CB认知行为治疗 classificationLayer
bcsBSSCCSSSSCBCSSSBSSSC包括SSSC SSCBSSSCB pixelClassificationLayer(计算机视觉工具箱)
涂层TBCSSS SSCBTSSSCBT regressionLayer

图形处理器におけるaapl / aapl / aapl / aapl / aapl / aapl

Gpu上ではimportONNXNetworkは実行されません。ただし,importONNXNetworkは,深層学習用の事前学習済みニュ,ラルネットワ,クを,gpuで使用可能なDAGNetworkオブジェクトまたはdlnetworkオブジェクトとして▪▪ンポ▪▪トします。

  • ネットワ,クをDAGNetworkオブジェクトとしてンポトした場合,分类を使用して,CPUまたはgpuで実行できます。名前と値の引数ExecutionEnvironmentを使用して,ハ,ドウェア要件を指定します。複数の出力があるネットワ,クの場合,DAGNetworkオブジェクト用の関数预测を使用します。

  • ネットワ,クをDAGNetworkオブジェクトとしてンポトした場合,预测を使用して,CPUまたはgpuで実行できます。名前と値の引数ExecutionEnvironmentを使用して,ハ,ドウェア要件を指定します。ネットワ,クに複数の出力がある場合は,名前と値の引数ReturnCategorical真正的として指定します。

  • ネットワ,クをdlnetworkオブジェクトとしてンポトした場合,预测を使用して,CPUまたはgpuで実行できます。入力デ,タとネットワ,クパラメ,タ,のいずれかがgpuに保存されている場合,関数预测をgpuで実行できます。

    • minibatchqueueを使用して入力デ,タのミニバッチの処理と管理を行う場合,gpuが使用可能であれば,出力はminibatchqueueオブジェクトによってgpu配列に変換されます。

    • dlupdateを使用して,dlnetworkオブジェクトの学習可能パラメタをgpu配列に変換します。

      Dlnet = dlupdate(@gpuarray, Dlnet)

  • trainNetworkを使用することにより,インポートしたネットワークに1つのCPUまたは1つのGPUで学習させることができます。実行環境のオプションを含む学習オプションを指定するには,関数trainingOptionsを使用します。名前と値の引数ExecutionEnvironmentを使用して,ハ,ドウェア要件を指定します。学習を高速化する方法の詳細にいては,并行、gpu和云中扩展深度学习を参照してください。

GPUを使用するには并行计算工具箱™とサポートされているGPUデバイスが必要です。サポトされているデバスにいては,リリス別のgpuサポト(并行计算工具箱)を参照してください。

ヒント

  • 事前学習済みのネットワークを新しいイメージの予測または転移学習に使用するには,インポートしたモデルの学習に使用したイメージに行った前処理と同じようにイメージを前処理しなければなりません。最も一般的な前処理ステップは,イメージのサイズ変更,イメージの平均値の減算,イメージのBGR形式からRGB形式への変換です。

    • imresizeを使用します。たとえば,[3] 227227年imresize(图片)のようにします。

    • RGB形式からBGR形式にメジを変換するには,翻转を使用します。たとえば,翻转(图片3)のようにします。

    学習および予測用のメジの前処理の詳細は,メ,ジの深層学習向け前処理を参照してください。

代替機能

ONNX模型格式的深度学习工具箱转换器には,事前学習済みのonnxネットワクをンポトするための3の関数(importONNXNetworkimportONNXLayers,およびimportONNXFunction)が用意されています。

インポートしたネットワークに,組み込みのMATLAB層への変換がサポートされていないONNX演算子が含まれており(組み込みのmatlab層への変換がサポ,トされているonnx演算子を参照),importONNXNetworkがカスタム層を生成しない場合,importONNXNetworkはエラ,を返します。この場合でも,importONNXLayersを使用してネットワクアキテクチャと重みをンポトするか,importONNXFunctionを使用してONNXParametersオブジェクトおよびモデル関数としてネットワクをンポトすることができます。

各シナリオに最適なンポト関数の詳細にいては,选择Function导入ONNX预训练网络を参照してください。

参照

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

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

バ,ジョン履歴

R2018aで導入

すべて展開する

R2021b以降はエラ

R2021bでの動作変更