Main Content

resize3dLayer

3 次元サイズ変更層

説明

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

作成

説明

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

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

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

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

例: layer = resize3dLayer('OutputSize',[128 128 36],'Method','trilinear') は、三重線形内挿を使用して入力のサイズを 128 x 128 x 36 ピクセルに変更する 3 次元サイズ変更層を作成します。

プロパティ

すべて展開する

サイズ変更

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

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

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

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

内挿法。最近傍内挿では 'nearest'、三重線形内挿では 'trilinear' を指定します。

入力空間から出力空間へ点をマッピングする幾何学的変換モード。'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

すべて折りたたむ

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

layer = resize3dLayer('Scale',[2 2 4])
layer = 
  Resize3DLayer with properties:

                      Name: ''
                     Scale: [2 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 224] の 3 次元サイズ変更層を作成します。

layer = resize3dLayer('OutputSize',[224 224 224],'Name','resize224')
layer = 
  Resize3DLayer with properties:

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

   Learnable Parameters
    No properties.

   State Parameters
    No properties.

  Show all properties

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

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

     1   'image'    3-D Image Input   32x32x32x3 images with 'zerocenter' normalization
     2   'resize'   Resize            nnet.cnn.layer.Resize3DLayer

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

lgraph = layerGraph(layers);

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

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

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

layer = resize3dLayer('Scale',0.5,'Method','trilinear','Name','rescale0.5')
layer = 
  Resize3DLayer with properties:

                      Name: 'rescale0.5'
                     Scale: [0.5000 0.5000 0.5000]
                OutputSize: []
      EnableReferenceInput: 0
                    Method: 'trilinear'
    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/.

バージョン履歴

R2020b で導入

すべて展開する

参考

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

トピック