主要内容

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

importKerasNetwork

事前学習済みのKerasネットワークおよび重みのインポート

説明

= importKerasNetwork (modelfileは,事前学習済みのTensorFlow™-Kerasネットワークとその重みをmodelfileからインポートします。

この関数には,深度学习工具箱™进口国对于张量流-Keras模型サポートパッケージが必要です。このサポートパッケージがインストールされていない場合,関数によってダウンロード用リンクが表示されます。

= importKerasNetwork (modelfile名称,值は1つ以上の名前と値のペアの引数で指定された追加オプションを使用して,事前学習済みのTensorFlow -Kerasネットワークとその重みをインポートします。

たとえば,importKerasNetwork (modelfile WeightFile,重量)は,モデルファイルmodelfileからネットワークを,重みファイル权重から重みをインポートします。この場合,modelfileはHDF5またはJSON形式にできます。重みファイルはHDF5形式でなければなりません。

すべて折りたたむ

深度学习工具箱进口国TensorFlow-Keras模型サポートパッケージをダウンロードしてインストールします。

コマンドラインでimportKerasNetworkと入力します。

importKerasNetwork

深度学习工具箱进口国TensorFlow-Keras模型サポートパッケージがインストールされていない場合,関数によってアドオンエクスプローラーに必要なサポートパッケージへのリンクが表示されます。サポートパッケージをインストールするには,リンクをクリックして,[インストール]をクリックします。コマンドラインでモデル ファイル“digitsDAGnet.h5”からネットワークをインポートして,インストールが正常に終了していることを確認します。必要なサポートパッケージがインストールされている場合,関数によってDAGNetworkオブジェクトが返されます。

modelfile =“digitsDAGnet.h5”;净= importKerasNetwork (modelfile)
警告:保存的Keras网络不包括职业。将类设置为category (1:N),其中N为网络分类输出层的类数。要指定类,请使用' classes '参数。
net = DAGNetwork with properties: Layers: [13x1 nnet.cnn.layer.Layer] Connections: [13x2 table] InputNames: {'input_1'} OutputNames: {'ClassificationLayer_activation_1'}

インポートするファイルを指定します。ファイルdigitsDAGnet.h5には,数字のイメージを分類する有向非循環グラフ畳み込みニューラルネットワークが含まれています。

modelfile =“digitsDAGnet.h5”

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

净= importKerasNetwork (modelfile)
警告:保存的Keras网络不包括职业。将类设置为category (1:N),其中N为网络分类输出层的类数。要指定类,请使用' classes '参数。
net = DAGNetwork with properties: Layers: [13x1 nnet.cnn.layer.Layer] Connections: [13x2 table] InputNames: {'input_1'} OutputNames: {'ClassificationLayer_activation_1'}

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

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

インポートするネットワークファイルと重みファイルを指定します。

modelfile =“digitsDAGnet.json”;重量=“digitsDAGnet.weights.h5”

これは,数字データで学習させた有向非循環グラフ畳み込みニューラルネットワークです。

ネットワークアーキテクチャと重みを別々のファイルからインポートします. .jsonファイルには,出力層,つまりコスト関数の情報がありません。ファイルをインポートするときに,出力層のタイプを指定します。

网= importKerasNetwork (modelfile,“WeightFile”权重,...“OutputLayerType”“分类”
警告:保存的Keras网络不包括职业。将类设置为category (1:N),其中N为网络分类输出层的类数。要指定类,请使用' classes '参数。
net = DAGNetwork with properties: Layers: [13x1 nnet.cnn.layer.Layer] Connections: [13x2 table] InputNames: {'input_1'} OutputNames: {'ClassificationLayer_activation_1'}

モデルファイルを指定します。

modelfile =“digitsDAGnet.h5”

クラス名を指定します。

一会= {' 0 '' 1 '' 2 '“3”“4”“5”“6”“7”“8”“9”};

クラス名を使用してKerasネットワークをインポートします。

网= importKerasNetwork (modelfile,“类”类名);

分類するイメージを読み取ります。

digitDatasetPath = fullfile (toolboxdir (“nnet”),“nndemos”“nndatasets”“DigitDataset”);我= imread (fullfile (digitDatasetPath,“5”“image4009.png”));

事前学習済みのネットワークを使用してイメージを分類します。

标签=分类(净,我);

イメージと分類結果を表示します。

imshow (I)标题([的分类结果:char(标签)))

入力引数

すべて折りたたむ

ネットワークアーキテクチャと重み(場合による)が含まれるモデルファイルの名前。文字ベクトルまたは字符串スカラーとして指定します。ファイルは,MATLAB®パス上のフォルダー内の現在のフォルダーに含まれていなければならず,そうでなければこのファイルの絶対パスまたは相対パスを含めなければなりません。

modelfileに含まれているものが以下の場合

  • ネットワークアーキテクチャと重みの場合,HDF5 (.h5)形式でなければなりません。

  • ネットワークアーキテクチャのみの場合,HDF5またはJSON (. json)形式にできます。

modelfileにネットワークアーキテクチャのみが含まれる場合,名前と値のペアの引数“WeightFile”を使用して,重みをHDF5ファイルで指定しなければなりません。

例:“digitsnet.h5”

データ型:字符|字符串

名前と値のペアの引数

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

例:importKerasNetwork (modelfile“OutputLayerType”、“分类”、“类”,类)は,モデルファイルmodelfileからネットワークをインポートし,Keras層の最後に分類問題用の出力層を追加して,を出力層のクラスに指定します。

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

例:“WeightFile”、“weights.h5”

modelfileで損失関数が指定されていない場合に,インポートされたネットワークアーキテクチャの最後にこの関数によって追加される出力層のタイプ。“分类”“回归”,または“pixelclassification”として指定します。pixelClassificationLayer(计算机视觉工具箱)オブジェクトを追加するには,计算机视觉工具箱™が必要です。

modelfile内のネットワークに複数の出力がある場合,この引数を使用して出力層のタイプを指定することはできません。代わりにimportKerasLayersを使用してください。importKerasLayersは,出力のプレースホルダー層を挿入します。インポートした後に,findPlaceholderLayersreplaceLayerを使用して,プレースホルダー層の検索と置換をそれぞれ行えます。

例:“OutputLayerType”、“回归”

ネットワークの入力イメージのサイズ。グレースケールイメージの(高度、宽度)またはカラーイメージの(高度、宽度、渠道)にそれぞれ対応する,2個または3個の数値のベクトルとして指定します。modelfileで入力サイズが指定されていない場合,ネットワークはこの情報を使用します。

modelfile内のネットワークに複数の入力がある場合,この引数を使用して入力サイズを指定することはできません。代わりにimportKerasLayersを使用してください。importKerasLayersによって,入力のプレースホルダー層が挿入されます。インポートした後に,findPlaceholderLayersreplaceLayerを使用して,プレースホルダー層の検索と置換をそれぞれ行えます。

例:“ImageInputSize”,[28 28]

出力層のクラス。直言ベクトル,弦配列,文字ベクトルの细胞配列,または“汽车”として指定します。字符串配列または文字ベクトルの cell 配列strを指定すると,出力層のクラスが分类(str, str)に設定されます。“汽车”の場合,クラスは分类(1:N)に設定されます。ここで,Nはクラスの数です。

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

出力引数

すべて折りたたむ

事前学習済みのKerasネットワーク。次のいずれかとして返されます。

  • Kerasネットワークのタイプが顺序の場合,SeriesNetworkオブジェクトです。

  • Kerasネットワークのタイプが模型の場合,DAGNetworkオブジェクトです。

ヒント

  • importKerasNetworkはKerasの層のタイプが次のとおりであるネットワークをインポートできます,がいくつかの制限があります。ネットワークに他のタイプの層が含まれる場合,エラーメッセージが返されます。この場合でも,importKerasLayersを使用してネットワークアーキテクチャと重みをインポートできます。

    サポートされているKerasの層 対応する深度学习工具箱の層
    添加 additionLayer

    激活(活性化の名前を指定):

    • “elu”

    • “relu”

    • “线性”

    • “softmax”

    • “乙状结肠”

    • 的双曲正切

    層:

    高度な活性化:

    • ELU

    • Softmax

    • 线性整流函数(Rectified Linear Unit)

    • LeakyReLU

    • PReLu

    層:

    AveragePooling2D averagePooling2dLayer
    BatchNormalization batchNormalizationLayer
    双向(LSTM (__)) bilstmLayer
    连接 depthConcatenationLayer
    Conv2D convolution2dLayer
    Conv2DTranspose transposedConv2dLayer
    CuDNNLSTM lstmLayer
    密集的 fullyConnectedLayer
    DepthwiseConv2D groupedConvolution2dLayer
    辍学 dropoutLayer
    嵌入 wordEmbeddingLayer(文本分析工具箱)
    nnet.keras.layer.FlattenCStyleLayer
    GlobalAveragePooling2D globalAveragePooling2dLayer
    GlobalMaxPooling2D globalMaxPooling2dLayer
    格勒乌 gruLayer
    输入 imageInputLayer
    LSTM lstmLayer
    MaxPooling2D maxPooling2dLayer
    multiplicationLayer
    SeparableConv2D groupedConvolution2dLayerまたはconvolution2dLayer
    UpSampling2D resize2dLayer(图像处理工具箱)
    UpSampling3D resize3dLayer(图像处理工具箱)
    ZeroPadding2D nnet.keras.layer.ZeroPadding2DLayer

    * PReLU層の場合,importKerasNetworkによって,ベクトル値のスケーリングパラメーターがベクトル要素の平均値に置き換えられます。インポートした後に,このパラメーターをベクトルに戻すことができます。例については,导入Keras PReLU图层を参照してください。

  • importKerasNetworkは,次のKeras損失関数をサポートします。

    • mean_squared_error

    • categorical_crossentropy

    • sparse_categorical_crossentropy

    • binary_crossentropy

  • 多入力多出力(MIMO)のKerasネットワークをインポートできます。ネットワークに,入力の入力サイズ情報および出力の損失情報が含まれている場合は,importKerasNetworkを使用します。それ以外の場合はimportKerasLayersを使用します。関数importKerasLayersは,入力と出力のプレースホルダー層を挿入します。インポートした後に,findPlaceholderLayersreplaceLayerを使用して,プレースホルダー層の検索と置換をそれぞれ行えます。米姆Kerasネットワークをインポートするワークフローは,米姆ONNX™ネットワークをインポートするワークフローと同じです。例については,导入并组装具有多个输出的ONNX网络を参照してください。多入力多出力の深層学習ネットワークの詳細については,多入力および多出力ネットワークを参照してください。

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

    • イメージのサイズを変更するには,imresizeを使用します。たとえば,imresize (im, 227年[227])のようにします。

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

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

互換性の考慮事項

すべて展開する

R2018b以降は非推奨

参照

Keras: Python深度学习库。https://keras.io

R2017bで導入