Main Content

squeezenet

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

  • SqueezeNet network architecture

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

説明

SqueezeNet は、深さが 18 層の畳み込みニューラル ネットワークです。100 万個を超えるイメージで学習させた事前学習済みのネットワークを、ImageNet データベース[1]から読み込むことができます。この事前学習済みのネットワークは、イメージを 1000 個のオブジェクト カテゴリ (キーボード、マウス、鉛筆、多くの動物など) に分類できます。結果として、このネットワークは広範囲のイメージに対する豊富な特徴表現を学習しています。この関数は SqueezeNet v1.1 ネットワークを返します。このネットワークの精度は SqueezeNet v1.0 と同様ですが、予測あたりに必要な浮動小数点演算回数は少なくなります [3]。ネットワークのイメージ入力サイズは 227 x 227 です。MATLAB® の他の事前学習済みのネットワークについては、事前学習済みの深層ニューラル ネットワークを参照してください。

net = squeezenet は、ImageNet データセットで学習させた SqueezeNet ネットワークを返します。

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

lgraph = squeezenet('Weights','none') は、未学習の SqueezeNet ネットワーク アーキテクチャを返します。

すべて折りたたむ

事前学習済みの SqueezeNet ネットワークを読み込みます。

net = squeezenet
net = 

  DAGNetwork with properties:

         Layers: [68×1 nnet.cnn.layer.Layer]
    Connections: [75×2 table]

この関数は、DAGNetwork オブジェクトを返します。

SqueezeNet は Deep Learning Toolbox™ に含まれています。その他のネットワークを読み込むには、googlenet などの関数を使用して、アドオン エクスプローラーから事前学習済みのネットワークをダウンロードするためのリンクを取得します。

出力引数

すべて折りたたむ

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

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

参照

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

[2] Iandola, Forrest N., Song Han, Matthew W. Moskewicz, Khalid Ashraf, William J. Dally, and Kurt Keutzer. "SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5 MB model size." Preprint, submitted November 4, 2016. https://arxiv.org/abs/1602.07360.

[3] Iandola, Forrest N. "SqueezeNet." https://github.com/forresti/SqueezeNet.

拡張機能

バージョン履歴

R2018a で導入

すべて折りたたむ

R2024a: 非推奨

squeezenet は推奨されません。代わりに関数 imagePretrainedNetwork を使用してください。

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

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

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

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

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

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

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

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

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

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