Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

importCaffeNetwork

事前学習済み畳み込みニューラル ネットワーク モデルを Caffe からインポート

説明

net = importCaffeNetwork(protofile,datafile) は、Caffe [1] から事前学習済みのネットワークをインポートします。この関数は、.prototxt ファイル protofile によって指定されているアーキテクチャと、.caffemodel ファイル datafile によって指定されているネットワークの重みを持つ事前学習済みのネットワークを返します。

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

Caffe Model Zoo [2] から事前学習済みのネットワークをダウンロードできます。

net = importCaffeNetwork(___,Name,Value) は、前の構文のいずれかを使用し、1 つ以上のペアの引数 Name,Value によって追加オプションが指定されたネットワークを返します。

すべて折りたたむ

Deep Learning Toolbox Importer for Caffe Models サポート パッケージをダウンロードしてインストールします。

必要なサポート パッケージをダウンロードするには、コマンド ラインに importCaffeNetwork と入力します。

importCaffeNetwork

Deep Learning Toolbox Importer for Caffe Models サポート パッケージがインストールされていない場合、この関数は、必要なサポート パッケージへのリンクをアドオン エクスプローラーに表示します。サポート パッケージをインストールするには、リンクをクリックして、[インストール] をクリックします。

インポートするファイルを指定します。

protofile = 'digitsnet.prototxt';
datafile = 'digits_iter_10000.caffemodel';

ネットワークをインポートします。

net = importCaffeNetwork(protofile,datafile)
net = 
  SeriesNetwork with properties:

         Layers: [7×1 nnet.cnn.layer.Layer]
     InputNames: {'testdata'}
    OutputNames: {'ClassificationOutput'}

入力引数

すべて折りたたむ

ネットワーク アーキテクチャが含まれる .prototxt ファイルの名前。文字ベクトルまたは string スカラーとして指定します。MATLAB® パス上のフォルダー内の現在のフォルダーに protofile が含まれていなければならず、そうでなければこのファイルの絶対パスまたは相対パスを含めなければなりません。.prototxt ファイルによって入力データのサイズが指定されていない場合、名前と値のペアの引数 'InputSize' を使用してサイズを指定しなければなりません。

例: 'digitsnet.prototxt'

ネットワークの重みが含まれる .caffemodel ファイルの名前。文字ベクトルまたは string スカラーとして指定します。MATLAB パス上のフォルダー内の現在のフォルダーに datafile が含まれていなければならず、そうでなければこのファイルの絶対パスまたは相対パスを含めなければなりません。重みのないネットワーク層をインポートするには、importCaffeLayers を使用します。

例: 'digits_iter_10000.caffemodel'

名前と値の引数

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

R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name を引用符で囲みます。

例: importCaffeNetwork(protofile,datafile,'AverageImage',I) は、ゼロ中心正規化用の平均イメージ I を使用して、事前学習済みのネットワークをインポートします。

入力データのサイズ。行ベクトルとして指定します。入力データの高さ、幅、およびチャネル数に対応する 2 個または 3 個の整数値のベクトル [h,w] または [h,w,c] を指定します。.prototxt ファイルで入力データのサイズが指定されていない場合、入力サイズを指定しなければなりません。

例: [28 28 1]

ゼロ中心正規化用の平均イメージ。行列として指定します。イメージを指定する場合、入力データと同じサイズのイメージを指定しなければなりません。イメージを指定しない場合、.prototxt ファイル (存在する場合) に指定されているデータが使用されます。そうでない場合、この関数はネットワークのイメージ入力層の Normalization プロパティを 'none' に設定します。

出力層のクラス。categorical ベクトル、string 配列、文字ベクトルの cell 配列、または 'auto' として指定します。string 配列または文字ベクトルの cell 配列 str を指定すると、出力層のクラスが categorical(str,str) に設定されます。Classes'auto' の場合、クラスは categorical(1:N) に設定されます。ここで、N はクラスの数です。

データ型: char | categorical | string | cell

出力引数

すべて折りたたむ

インポートされた事前学習済みの Caffe ネットワーク。SeriesNetwork オブジェクトまたは DAGNetwork オブジェクトとして返されます。カラー イメージを入力として取る Caffe ネットワークは、イメージが BGR 形式であることを想定しています。importCaffeNetwork は、インポート時にネットワークを変更して、インポート後の MATLAB ネットワークが RGB イメージを入力とするようにします。

詳細

すべて折りたたむ

インポートされたネットワーク用のコードの生成

MATLAB Coder™ または GPU Coder™ を Deep Learning Toolbox と共に使用して、インポートされたネットワーク用の MEX コード、スタンドアロン CPU コード、CUDA® MEX コード、またはスタンドアロン CUDA コードを生成できます。詳細については、コード生成を参照してください。

  • MATLAB Coder を Deep Learning Toolbox と共に使用して、デスクトップまたは組み込みターゲットで実行される MEX コードまたはスタンドアロン CPU コードを生成します。Intel® MKL-DNN ライブラリまたは ARM® Compute ライブラリを使用する生成済みのスタンドアロン コードを展開できます。あるいは、サードパーティ ライブラリの関数を呼び出さない汎用の C/C++ コードを生成することもできます。詳細については、MATLAB Coder を使用した深層学習 (MATLAB Coder)を参照してください。

  • GPU Coder を Deep Learning Toolbox と共に使用して、デスクトップまたは組み込みターゲットで実行される CUDA MEX コードまたはスタンドアロン CUDA コードを生成します。CUDA 深層ニューラル ネットワーク ライブラリ (cuDNN)、TensorRT™ 高性能推論ライブラリ、または Mali GPU 向け ARM Compute ライブラリを使用する生成済みのスタンドアロン CUDA コードを展開できます。詳細については、GPU Coder を使用した深層学習 (GPU Coder)を参照してください。

importCaffeNetwork は、ネットワーク netDAGNetwork オブジェクトまたは SeriesNetwork オブジェクトとして返します。これらのオブジェクトは両方ともコード生成をサポートします。MATLAB Coder オブジェクトおよび Deep Learning Toolbox オブジェクト用の GPU Coder サポートの詳細については、サポートされているクラス (MATLAB Coder)およびサポートされているクラス (GPU Coder)をそれぞれ参照してください。

コード生成をサポートする層をもつあらゆるインポート済みネットワーク用にコードを生成できます。MATLAB Coder および GPU Coder を使用したコード生成をサポートする層のリストについては、サポートされている層 (MATLAB Coder)およびサポートされている層 (GPU Coder)をそれぞれ参照してください。各組み込み MATLAB 層のコード生成機能と制限の詳細については、各層の拡張機能の節を参照してください。例については、imageInputLayerコード生成GPU コード生成を参照してください。

GPU におけるインポートしたネットワークの使用

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

  • classify を使用して、インポートしたネットワークによる予測を CPU または GPU で実行できます。名前と値の引数 ExecutionEnvironment を使用して、ハードウェア要件を指定します。複数の出力があるネットワークの場合、関数 predict を使用します。

  • predict を使用して、インポートしたネットワークによる予測を CPU または GPU で実行できます。名前と値の引数 ExecutionEnvironment を使用して、ハードウェア要件を指定します。ネットワークに複数の出力がある場合は、名前と値の引数 ReturnCategoricaltrue として指定します。

  • 関数 trainnet および trainNetwork を使用して、CPU または GPU で、インポート済みのネットワークに学習させることができます。実行環境のオプションを含む学習オプションを指定するには、関数 trainingOptions を使用します。名前と値の引数 ExecutionEnvironment を使用して、ハードウェア要件を指定します。学習を高速化する方法の詳細については、Scale Up Deep Learning in Parallel, on GPUs, and in the Cloudを参照してください。

GPU を使用するには Parallel Computing Toolbox™ ライセンスとサポートされている GPU デバイスが必要です。サポートされているデバイスについては、GPU 計算の要件 (Parallel Computing Toolbox)を参照してください。

ヒント

拡張機能

バージョン履歴

R2017a で導入

すべて展開する