Main Content

resize2dLayer

2 次元サイズ変更層

説明

2 次元サイズ変更層は、指定された高さと幅、または参照入力特徴マップのサイズに合わせて、スケール係数により、2 次元入力のサイズを変更します。この層を使用するには Deep Learning Toolbox™ が必要です。

作成

説明

layer = resize2dLayer('Scale',scale) は、2 次元サイズ変更層を作成し、Scale プロパティを scale で指定されたスケール係数に設定します。

layer = resize2dLayer('OutputSize',outputSize) は、2 次元サイズ変更層を作成し、OutputSize プロパティを outputSize で指定された高さと幅に設定します。

layer = resize2dLayer('EnableReferenceInput',tf) は、2 次元サイズ変更層を作成し、EnableReferenceInput プロパティを tf で指定された boolean に設定します。この値を true として指定した場合、層は、参照特徴マップを受け入れる入力を追加し、参照特徴マップのサイズに合わせて入力のサイズを変更します。

layer = resize2dLayer(___,Name,Value) は、名前と値のペアの引数を使用して、オプションの MethodGeometricTransformModeNearestRoundingMode、および Name の各プロパティを設定します。複数の名前と値のペアの引数を指定できます。各プロパティ名を一重引用符で囲みます。

例: layer = resize2dLayer('OutputSize',[128 128],'Method','bilinear') は、双一次内挿を使用して入力のサイズを 128 x 128 ピクセルに変更する 2 次元サイズ変更層を作成します。

プロパティ

すべて展開する

サイズ変更

入力をサイズ変更するスケール係数。正の数値の 2 要素の行ベクトルとして指定します。スケール係数はそれぞれ行と列の次元用です。層を作成する場合、Scale をスカラーとして指定して、両方の次元に同じ値を使用できます。

サイズ変更した入力の出力サイズ。[nrows ncols] 形式の正の整数の 2 要素行ベクトルとして指定します。1 つの要素を NaN として指定できます。その場合、層は値を自動的に計算し、入力の縦横比を維持します。

参照特徴マップを入力として層に追加するかどうか。数値か logical 0 (false) または 1 (true) として指定します。この値を true として指定した場合、層は、参照特徴マップの高さと幅に合わせて入力の高さと幅を変更します。このサイズ変更操作によって入力のチャネル数が変わることはありません。

参照特徴マップを有効にした場合、層への入力の名前は 'in1' および 'ref' になります。ここで、'ref' は参照特徴マップの名前です。connectLayers (Deep Learning Toolbox) または disconnectLayers (Deep Learning Toolbox) を使用して層の結合または切り離しを行うときには、入力名を使用します。

内挿法。最近傍内挿では 'nearest'、双一次内挿では 'bilinear' を指定します。

入力空間から出力空間へ点をマッピングする幾何学的変換モード。'half-pixel' または 'asymmetric' として指定します。

最近傍内挿の丸めモード。次のいずれかとして指定します。

  • 'round' — MATLAB® 関数 round と同じ丸め動作を使用します。

  • 'floor' — MATLAB 関数 floor と同じ丸め動作を使用します。

  • 'onnx-10' — ONNX™ (Open Neural Network Exchange) opset 10 Resize 演算子のサイズ変更動作を再現します。

このプロパティは、Method プロパティが 'nearest' である場合に有効です。

層の名前。文字ベクトルまたは string スカラーとして指定します。Layer 配列入力の場合、関数 trainNetwork (Deep Learning Toolbox)assembleNetwork (Deep Learning Toolbox)layerGraph (Deep Learning Toolbox)、および dlnetwork (Deep Learning Toolbox) は、名前が '' の層に自動的に名前を割り当てます。

データ型: char | string

層の入力の数。EnableReferenceInput プロパティが false の場合は 1 として指定し、EnableReferenceInput プロパティが true の場合は 2 として指定します。

データ型: double

層の入力の名前。EnableReferenceInput プロパティが false の場合は {'in'} として指定し、EnableReferenceInput プロパティが true の場合は {'in','ref'} として指定します。

データ型: cell

このプロパティは読み取り専用です。

層の出力の数。この層には単一の出力のみがあります。

データ型: double

このプロパティは読み取り専用です。

層の出力名。この層には単一の出力のみがあります。

データ型: cell

すべて折りたたむ

水平方向のスケール係数が 2、垂直方向のスケール係数が 4 の 2 次元サイズ変更層を作成します。

layer = resize2dLayer('Scale',[2 4])
layer = 
  Resize2DLayer with properties:

                      Name: ''
                     Scale: [2 4]
                OutputSize: []
      EnableReferenceInput: 0
                    Method: 'nearest'
    GeometricTransformMode: 'half-pixel'
       NearestRoundingMode: 'round'

   Learnable Parameters
    No properties.

   State Parameters
    No properties.

  Show all properties

名前が 'resize224'、出力サイズが [224 224] の 2 次元サイズ変更層を作成します。

layer = resize2dLayer('OutputSize',[224 224],'Name','resize224')
layer = 
  Resize2DLayer with properties:

                      Name: 'resize224'
                     Scale: []
                OutputSize: [224 224]
      EnableReferenceInput: 0
                    Method: 'nearest'
    GeometricTransformMode: 'half-pixel'
       NearestRoundingMode: 'round'

   Learnable Parameters
    No properties.

   State Parameters
    No properties.

  Show all properties

参照入力特徴マップを受け入れる 2 次元サイズ変更層を含む層の配列を作成します。

layers = [
    imageInputLayer([32 32 3],'Name','image')
    resize2dLayer('EnableReferenceInput',true,'Name','resize')]
layers = 
  2x1 Layer array with layers:

     1   'image'    Image Input   32x32x3 images with 'zerocenter' normalization
     2   'resize'   Resize        nnet.cnn.layer.Resize2DLayer

layerGraph を作成します。2 次元サイズ変更層の最初の入力は、イメージ入力層の出力に自動的に接続されます。

lgraph = layerGraph(layers);

関数 connectLayers を使用して、参照特徴マップを提供する層の出力に 2 次元サイズ変更層の 'ref' 入力を接続します。この例は、'ref' 入力がイメージ入力層の出力にも接続されるという自明な接続を示しています。

lgraph = connectLayers(lgraph,'image','resize/ref');

名前が 'rescale0.5'、スケール係数が一律 0.5 の 2 次元サイズ変更層を作成します。内挿法を双一次内挿として指定します。

layer = resize2dLayer('Scale',0.5,'Method','bilinear','Name','rescale0.5')
layer = 
  Resize2DLayer with properties:

                      Name: 'rescale0.5'
                     Scale: [0.5000 0.5000]
                OutputSize: []
      EnableReferenceInput: 0
                    Method: 'bilinear'
    GeometricTransformMode: 'half-pixel'
       NearestRoundingMode: 'round'

   Learnable Parameters
    No properties.

   State Parameters
    No properties.

  Show all properties

参照

[1] Open Neural Network Exchange. https://github.com/onnx/.

[2] ONNX. https://onnx.ai/.

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。

バージョン履歴

R2020b で導入

すべて展開する

参考

| | (Deep Learning Toolbox) | (Deep Learning Toolbox) | (Deep Learning Toolbox)

トピック