Main Content

efficientnetb0

(非推奨) EfficientNet-b0 畳み込みニューラル ネットワーク

R2020b 以降

  • EfficientNet-b0 network architecture

efficientnetb0 は推奨されません。代わりに関数 imagePretrainedNetwork を使用し、"efficientnetb0" モデルを指定してください。詳細については、バージョン履歴を参照してください。

説明

EfficientNet-b0 は、ImageNet データベース[1]の 100 万個を超えるイメージで学習を行った畳み込みニューラル ネットワークです。このネットワークは、イメージを 1000 個のオブジェクト カテゴリ (キーボード、マウス、鉛筆、多くの動物など) に分類できます。結果として、このネットワークは広範囲のイメージに対する豊富な特徴表現を学習しています。ネットワークのイメージ入力サイズは 224 x 224 です。MATLAB® の他の事前学習済みのネットワークについては、事前学習済みの深層ニューラル ネットワークを参照してください。

net = efficientnetb0 は、ImageNet データ セットで学習させた EfficientNet-b0 モデル ネットワークを返します。

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

net = efficientnetb0('Weights','imagenet') は、ImageNet データ セットで学習させた EfficientNet-b0 モデル ネットワークを返します。この構文は、net = efficientnetb0 と等価です。

lgraph = efficientnetb0('Weights','none') は、未学習の EfficientNet-b0 モデル ネットワーク アーキテクチャを返します。未学習のモデルは、サポート パッケージを必要としません。

すべて折りたたむ

Deep Learning Toolbox Model for EfficientNet-b0 Network サポート パッケージをダウンロードしてインストールします。

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

efficientnetb0

Deep Learning Toolbox Model for EfficientNet-b0 Network サポート パッケージがインストールされていない場合、関数によってアドオン エクスプローラーに必要なサポート パッケージへのリンクが表示されます。サポート パッケージをインストールするには、リンクをクリックして、[インストール] をクリックします。コマンド ラインで efficientnetb0 と入力して、インストールが正常に終了していることを確認します。必要なサポート パッケージがインストールされている場合、関数によって DAGNetwork オブジェクトが返されます。

efficientnetb0
ans = 

  DAGNetwork with properties:

         Layers: [290×1 nnet.cnn.layer.Layer]
    Connections: [363×2 table]
     InputNames: {'ImageInput'}
    OutputNames: {'classification'}

ディープ ネットワーク デザイナーを使用してネットワークを可視化します。

deepNetworkDesigner(efficientnetb0)

ディープ ネットワーク デザイナーで [新規] をクリックし、事前学習済みの他のニューラル ネットワークを探索します。

Deep Network Designer start page showing available pretrained neural networks

ニューラル ネットワークをダウンロードする必要がある場合は、目的のニューラル ネットワークで [インストール] をクリックしてアドオン エクスプローラーを開きます。

出力引数

すべて折りたたむ

事前学習済みの EfficientNet-b0 畳み込みニューラル ネットワーク。DAGNetwork オブジェクトとして返されます。

未学習の EfficientNet-b0 畳み込みニューラル ネットワーク アーキテクチャ。LayerGraph オブジェクトとして返されます。

参照

[1] ImageNet. http://www.image-net.org.

[2] Mingxing Tan and Quoc V. Le, “EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks,” ArXiv Preprint ArXiv:1905.1194, 2019.

拡張機能

バージョン履歴

R2020b で導入

すべて折りたたむ

R2024a: 非推奨

efficientnetb0 は推奨されません。代わりに関数 imagePretrainedNetwork を使用し、モデルとして "efficientnetb0" を指定してください。

関数 efficientnetb0 のサポートを削除する予定はありません。ただし、関数 imagePretrainedNetwork には、転移学習ワークフローに役立つ機能が追加されています。たとえば、データに含まれるクラスの数を numClasses オプションで指定すると、この関数は、修正することなくそのまま再学習が可能なネットワークを返します。

関数 imagePretrainedNetwork は、ネットワークを dlnetwork オブジェクトとして返しますが、このオブジェクトにはクラス名が格納されていません。事前学習済みのネットワークのクラス名を取得するには、関数 imagePretrainedNetwork の 2 番目の出力引数を使用します。

関数 efficientnetb0 の代表的な使用法と、代わりに関数 imagePretrainedNetwork を使用するためのコードの更新方法を、次の表に示します。

非推奨推奨
net = efficientnetb0;[net,classNames] = imagePretrainedNetwork("efficientnetb0");
net = efficientnetb0(Weights="none");net = imagePretrainedNetwork("efficientnetb0",Weights="none");

imagePretrainedNetworkdlnetwork オブジェクトを返します。これには次の利点もあります。

  • dlnetwork オブジェクトは、ネットワークの構築、予測、組み込み学習、可視化、圧縮、検証、およびカスタム学習ループをサポートする統合されたデータ型です。

  • dlnetwork オブジェクトは、ユーザーが作成したり外部のプラットフォームからインポートしたりできる、さまざまなネットワーク アーキテクチャをサポートしています。

  • 関数 trainnetdlnetwork オブジェクトをサポートしているため、損失関数を簡単に指定できます。組み込みの損失関数を選択するか、カスタム損失関数を指定できます。

  • dlnetwork オブジェクトを使用した学習と予測は、通常、LayerGraphtrainNetwork を使用したワークフローよりも高速です。

dlnetwork オブジェクトとして指定されたニューラル ネットワークに学習させるには、関数 trainnet を使用します。