resnetLayers
resnetLayers
は推奨されません。代わりに関数 resnetNetwork
を使用してください。詳細については、バージョン履歴を参照してください。
説明
は、lgraph
= resnetLayers(inputSize
,numClasses
)inputSize
で指定されたイメージ入力サイズおよび numClasses
で指定されたクラス数をもつ 2 次元残差ネットワークを作成します。
は、前述の構文に含まれるいずれかの入力引数を指定する 1 つ以上の名前と値の引数を使用して、残差ネットワークを作成します。たとえば、lgraph
= resnetLayers(___,Name=Value
)InitialNumFilters=32
は、最初の畳み込み層で 32 個のフィルターを指定します。
ヒント
事前学習済みの ResNet ニューラル ネットワークを読み込むには、関数 imagePretrainedNetwork
を使用します。
例
入力引数
出力引数
詳細
ヒント
小さなイメージを扱うには、
InitialPoolingLayer
オプションを"none"
に設定し、初期プーリング層を削除してダウンサンプリングの量を減らします。残差ネットワークには、通常、ResNet-"X" という名前が付けられています。ここで、"X" はネットワークの "深さ" です。ネットワークの深さは、入力層から出力層までのパスにある逐次畳み込み層または全結合層の最大数として定義されます。ネットワークの深さを計算するには、次の式を使用します。
ここで、si はスタック i の深さです。
深さが同じネットワークに異なるネットワーク アーキテクチャを使用できます。たとえば、ボトルネックをもつ (またはもたない) ResNet-14 アーキテクチャを作成できます。
ボトルネック アーキテクチャと非ボトルネック アーキテクチャの間の関係は、ボトルネックをもつネットワークとボトルネックをもたないネットワークの深さの違いにも現れています。resnet14Bottleneck = resnetLayers([224 224 3],10, ... StackDepth=[2 2], ... NumFilters=[64 128]); resnet14NoBottleneck = resnetLayers([224 224 3],10, ... BottleneckType="none", ... StackDepth=[2 2 2], ... NumFilters=[64 128 256]);
resnet50Bottleneck = resnetLayers([224 224 3],10); resnet34NoBottleneck = resnetLayers([224 224 3],10, ... BottleneckType="none");
参照
[1] He, Kaiming, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. “Deep Residual Learning for Image Recognition.” Preprint, submitted December 10, 2015. https://arxiv.org/abs/1512.03385.
[2] He, Kaiming, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. “Identity Mappings in Deep Residual Networks.” Preprint, submitted July 25, 2016. https://arxiv.org/abs/1603.05027.
[3] He, Kaiming, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. "Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification." In Proceedings of the 2015 IEEE International Conference on Computer Vision, 1026–1034. Washington, DC: IEEE Computer Vision Society, 2015.