Main Content

dlarray をサポートする関数の一覧

dlarray をサポートする Deep Learning Toolbox 関数

次の表は、dlarray オブジェクトに対して作用する Deep Learning Toolbox™ 関数、およびこれらの関数の簡単な説明を示します。

深層学習の操作

関数説明
avgpool平均プーリング演算は、入力をプーリング領域に分割し、各領域の平均値を計算することによって、ダウンサンプリングを実行します。
batchnormバッチ正規化演算は、観測値全体における入力データの正規化を、各チャネルについて個別に行います。畳み込みニューラル ネットワークの学習速度を上げ、ネットワークの初期化に対する感度を下げるには、relu など、畳み込み演算と非線形演算の間のバッチ正規化を使用します。
crossentropy交差エントロピー演算は、単一ラベルおよび複数ラベルの分類タスクについて、ネットワーク予測とターゲット値の間の交差エントロピー損失を計算します。
crosschannelnormクロスチャネル正規化演算は、異なるチャネルの局所応答を使用して各活性化を正規化します。通常、クロスチャネル正規化は relu 演算に続きます。クロスチャネル正規化は局所応答正規化とも呼ばれます。
ctcCTC 演算は、非整列シーケンス間のコネクショニスト時間分類 (CTC) 損失を計算します。
dlconv畳み込み演算は、入力データにスライディング フィルターを適用します。関数 dlconv は、深層学習畳み込み、グループ化された畳み込み、チャネル方向に分離可能な畳み込みで使用します。
dlode45ニューラル常微分方程式 (ODE) 演算は、指定された ODE の解を返します。
dltranspconv転置畳み込み演算は、特徴マップをアップサンプリングします。
embed組み込み演算は、数値インデックスを数値ベクトルに変換します。ここで、インデックスは離散データに対応します。埋め込みを使用して、categorical 値や単語などの離散データを数値ベクトルにマッピングします。
fullyconnect全結合演算は、入力に重み行列を乗算してから、バイアス ベクトルを加算します。
groupnormグループ正規化演算は、グループ化されたチャネル サブセット全体における入力データの正規化を、各観測値について個別に行います。畳み込みニューラル ネットワークの学習速度を上げ、ネットワークの初期化に対する感度を下げるには、relu など、畳み込み演算と非線形演算の間のグループ正規化を使用します。
gruゲート付き回帰型ユニット (GRU) 演算では、時系列データとシーケンス データのタイム ステップ間の依存関係をネットワークに学習させることができます。
huberHuber 演算は、回帰タスクのネットワーク予測とターゲット値の間の Huber 損失を計算します。'TransitionPoint' オプションが 1 の場合、これは "滑らかな L1 損失" とも呼ばれます。
instancenormインスタンス正規化演算は、各チャネルにおける入力データの正規化を、各観測値について個別に行います。畳み込みニューラル ネットワークの学習の収束性能を上げ、ネットワークのハイパーパラメーターに対する感度を下げるには、relu など、畳み込み演算と非線形演算の間のインスタンス正規化を使用します。
l1lossL1 損失演算は、ネットワーク予測とターゲット値を指定して L1 損失を計算します。Reduction オプションが "sum" で、NormalizationFactor オプションが "batch-size" のときの計算値は平均絶対誤差 (MAE) と呼ばれます。
l2lossL2 損失演算は、ネットワーク予測とターゲット値を指定して L2 損失を (L2 ノルムの 2 乗に基づいて) 計算します。Reduction オプションが "sum" で、NormalizationFactor オプションが "batch-size" のときの計算値は平均二乗誤差 (MSE) と呼ばれます。
layernormレイヤー正規化演算は、チャネル全体における入力データの正規化を、各観測値について個別に行います。再帰型多層パーセプトロン ニューラル ネットワークの学習速度を上げ、ネットワークの初期化に対する感度を下げるには、LSTM 演算や全結合演算などの学習可能な演算を行った後に、レイヤー正規化を使用します。
leakyrelu漏洩 (leaky) 正規化線形ユニット (ReLU) 活性化演算は、非線形のしきい値処理を実行し、ゼロよりも小さい入力値を固定スケール係数で乗算します。
lstm長短期記憶 (LSTM) 演算では、時系列データおよびシーケンス データのタイム ステップ間の長期的な依存関係をネットワークに学習させることができます。
maxpool最大プーリング演算は、入力をプーリング領域に分割し、各領域の最大値を計算することによって、ダウンサンプリングを実行します。
maxunpool最大逆プーリング演算は、アップサンプリングとゼロを使ったパディングによって、最大プーリング演算の出力を逆プーリングします。
mse半平均二乗誤差演算は、回帰タスクのネットワーク予測とターゲット値の間の半平均二乗誤差損失を計算します。
onehotdecode

one-hot 復号化演算は、分類ネットワークの出力などの確率ベクトルを分類ラベルに復号化します。

入力 Adlarray にすることができます。A が書式化されている場合、関数はデータ形式を無視します。

relu正規化線形ユニット (ReLU) 活性化演算は、非線形のしきい値処理を実行し、ゼロよりも小さい入力値をゼロに設定します。
sigmoidシグモイド活性化演算は、入力データにシグモイド関数を適用します。
softmaxソフトマックス活性化演算は、入力データのチャネルの次元にソフトマックス関数を適用します。

dlarray 固有の関数

関数説明
dimsこの関数は、dlarray のデータ形式を返します。
dlfevalこの関数は、自動微分を使用して関数 dlarray を評価します。
dlgradientこの関数は、自動微分を使用して勾配を計算します。
extractdataこの関数は、dlarray からデータを抽出します。
finddimこの関数は、任意の次元ラベルが付いた dlarray の次元のインデックスを検出します。
stripdimsこの関数は、dlarray からデータ形式を削除します。

dlarray をサポートする領域固有の関数

次の表は、dlarray オブジェクトに対して作用する領域固有の関数、およびこれらの関数の簡単な説明を示します。

コンピューター ビジョン

関数説明
focalCrossEntropy (Computer Vision Toolbox)予測された分類ラベルとターゲットの分類ラベルを表す 2 つの dlarray オブジェクト間の焦点交差エントロピー損失を計算します。
generalizedDice (Computer Vision Toolbox)クラスの重み付けを考慮した一般化 Dice メトリクスを使用して、セグメント化されたイメージを表す 2 つの dlarray オブジェクト間の類似度を測定します。
roialign (Computer Vision Toolbox)dlarray データの ROI プーリングを実行します。

イメージ処理

関数説明
depthToSpace (Image Processing Toolbox)深さの次元から得られた dlarray データを空間ブロックに再配置します。
dlresize (Image Processing Toolbox)dlarray の空間次元のサイズを変更します。
multissim (Image Processing Toolbox)マルチスケール構造的類似性 (MS-SSIM) メトリクスを使用して、2 次元イメージを表す 2 つの dlarray オブジェクト間の類似度を測定します。
multissim3 (Image Processing Toolbox)3 次元 MS-SSIM メトリクスを使用して、3 次元イメージを表す 2 つの dlarray オブジェクト間の類似度を測定します。
psnr (Image Processing Toolbox)ピーク S/N 比 (PSNR) メトリクスを使用して、イメージを表す 2 つの dlarray オブジェクト間の類似度を測定します。
spaceToDepth (Image Processing Toolbox)dlarray データの空間ブロックを深さの次元に再配置します。
ssim (Image Processing Toolbox)構造的類似性 (SSIM) メトリクスを使用して、イメージを表す 2 つの dlarray オブジェクト間の類似度を測定します。

信号処理

関数説明
dlmodwt (Wavelet Toolbox)最大重複離散ウェーブレット変換および多重解像度解析を計算します。
dlstft (Signal Processing Toolbox)短時間フーリエ変換を計算します。

dlarray をサポートする MATLAB 関数

MATLAB® 関数の多くは dlarray オブジェクトに対して作用します。次の表は、引数 dlarray を使用する場合のこれらの関数の使用上の注意と制限を示します。

単項の要素単位の関数

関数注意と制限
abs

出力 dlarray のデータ形式は入力 dlarray と同じになります。

acos
acosh
acot
acsc
angle
asec
asin
asinh
atan
atan2
atanh
conj
cos
cosh
cot
csc
exp
imag
log
real
reallog
realsqrt
sec
sign
sin
sinh
sqrt
tan
tanh
uminus, -
uplus, +

二項の要素単位の演算子

関数注意と制限
complex

1 入力の構文の場合、出力 dlarray のデータ形式は入力 dlarray と同じになります。

2 入力の構文の場合、dlarray 入力が書式化されている場合はそのデータ形式が一致していなければなりません。

minus, -

2 つの dlarray 入力が書式化されている場合、出力 dlarray は、その両方のデータ形式の組み合わせを使用して書式化されます。この関数は暗黙的な拡張を使用して入力を結合します。詳細については、データ形式での暗黙的な拡張を参照してください。

plus, +
power, .^
rdivide, ./
realpow
times, .*

リダクション関数

関数注意と制限
mean
  • 出力 dlarray のデータ形式は入力 dlarray と同じになります。

  • 'omitnan' オプションはサポートされません。

  • 入力 dlarray が GPU にある場合、'native' オプションはサポートされません。

prod
  • 出力 dlarray のデータ形式は入力 dlarray と同じになります。

  • 'omitnan' オプションはサポートされません。

sum

極値関数

関数注意と制限
ceil

出力 dlarray のデータ形式は入力 dlarray と同じになります。

eps
  • 出力 dlarray のデータ形式は入力 dlarray と同じになります。

  • eps(ones('like', x)) を使用して、dlarray x のデータ型に基づいてスカラーのイプシロンの値を取得します。

fix

出力 dlarray のデータ形式は入力 dlarray と同じになります。

floor

出力 dlarray のデータ形式は入力 dlarray と同じになります。

max
  • 単一の dlarray の最大要素または最小要素が見つかった場合、出力 dlarray のデータ形式は入力 dlarray と同じになります。

  • 書式化されている 2 つの dlarray 入力間に最大要素または最小要素が見つかった場合、出力 dlarray には両方のデータ形式の組み合わせが含まれます。この関数は暗黙的な拡張を使用して入力を結合します。詳細については、データ形式での暗黙的な拡張を参照してください。

  • インデックスの出力引数はトレースされないため、自動微分と併用することはできません。詳細については、Deep Learning Toolbox での自動微分の使用を参照してください。

min
rescale
  • 最初の入力 dlarray A が書式化されていない場合、追加の入力はすべて書式化されていないものでなければなりません。

  • 最初の入力 dlarray A が書式化されている場合、追加の入力はすべて、書式化されていないスカラーか、データ形式が A のデータ形式のサブセットでなければなりません。この場合、各次元は大きさが 1 であるか、A の対応する次元の長さに一致しなければなりません。

round
  • 構文 Y = round(X) のみがサポートされます。

  • 出力 dlarray のデータ形式は入力 dlarray と同じになります。

フーリエ変換

関数注意と制限
fft 書式化されていない入力配列のみがサポートされます。
ifft
  • 書式化されていない入力配列のみがサポートされます。

  • 'symmetric' オプションを使用する場合、ifft は、入力 Y を厳密に対称であるものとして扱います。自動微分を使用して導関数を計算する場合、導関数も厳密に対称となります。Y が非対称の場合、関数と勾配の動作が一致しない可能性があります。非対称の入力に対して関数と勾配の動作を必ず一致させるには、Y を明示的に対称化します。

その他の算術演算

関数注意と制限
colon, :
  • サポートされている演算は次のとおりです。

    • a:b

    • a:b:c

    dlarray のインデックス付けの詳細は、インデックスを参照してください。

  • すべての入力は実数スカラーでなければなりません。出力 dlarray は書式化されません。

interp1
  • サンプル点入力 x は重複要素のない有限な増加ベクトルでなければなりません。

  • method'linear' または 'nearest' でなければなりません。

  • 区分多項式構文 ('pp') はサポートされていません。

  • サンプル値の入力 v のみ、書式化された dlarray にすることができます。他のすべての入力は書式なしでなければなりません。v が書式化された dlarray の場合、クエリ点の入力 xq はベクトルでなければならず、出力 vqv と同じデータ形式になります。

mrdivide, /

2 番目の dlarray 入力はスカラーでなければなりません。出力 dlarray のデータ形式は最初の dlarray 入力と同じになります。

mtimes, *
  • 一方の入力を書式化された dlarray にできるのは、もう片方の入力が書式なしのスカラーである場合のみです。この場合、出力 dlarray のデータ形式は、書式化された dlarray 入力と同じになります。

  • dlarray ではないスパース行列と dlarray の乗算は、両方の入力が非スカラーの場合にのみサポートされています。

ode45

サポートされている構文は次のとおりです。

  • [t,y] = ode45(odefun,tspan,y0)

  • [t,y] = ode45(odefun,tspan,y0,options)

y0 および tspan の少なくとも 1 つは書式化されていない dlarray オブジェクトでなければなりません。

tspandlarray オブジェクトの場合、出力 t は書式化されていない dlarray オブジェクトになります。y0dlarray オブジェクトの場合、出力 y は書式化されていない dlarray オブジェクトになります。

dlarray 入力について、関数 ode45OutputFcnMassNonNegative、および Events のオプションをサポートしていません。

dlarray 入力について、関数 ode45dlaccelerate を使用した高速化をサポートしていません。

ヒント

ニューラル ODE のワークフローでは、dlode45 を使用してください。

pagemtimes

一方の入力を書式化された dlarray にできるのは、もう片方のページの入力が書式なしのスカラーである場合のみです。この場合、出力 dlarray のデータ形式は、書式化された dlarray 入力と同じになります。

論理演算

関数注意と制限
all

出力 dlarray のデータ形式は入力 dlarray と同じになります。

and, &

2 つの dlarray 入力が書式化されている場合、出力 dlarray は、その両方のデータ形式の組み合わせを使用して書式化されます。この関数は暗黙的な拡張を使用して入力を結合します。詳細については、データ形式での暗黙的な拡張を参照してください。

any

出力 dlarray のデータ形式は入力 dlarray と同じになります。

eq, ==

2 つの dlarray 入力が書式化されている場合、出力 dlarray は、その両方のデータ形式の組み合わせを使用して書式化されます。この関数は暗黙的な拡張を使用して入力を結合します。詳細については、データ形式での暗黙的な拡張を参照してください。

ge, >=
gt, >
le, <=
lt, <
ne, ~=
not, ~

出力 dlarray のデータ形式は入力 dlarray と同じになります。

or, |

2 つの dlarray 入力が書式化されている場合、出力 dlarray は、その両方のデータ形式の組み合わせを使用して書式化されます。この関数は暗黙的な拡張を使用して入力を結合します。詳細については、データ形式での暗黙的な拡張を参照してください。

xor

サイズ操作関数

関数注意と制限
reshape

入力 dlarray が書式化されていても、出力 dlarray は書式化されません。

squeeze

2 次元の dlarray オブジェクトは squeeze の影響を受けません。入力 dlarray が書式化されている場合、この関数は大きさが 1 の次元に属する次元ラベルを削除します。入力 dlarray に 2 つを超える次元があり、その 3 番目以上の次元の大きさが 1 である場合、この関数はこれらの次元とそのラベルを破棄します。

転置演算

関数注意と制限
ctranspose, '

入力 dlarray が書式化されている場合、両方の次元のラベルは同じでなければなりません。この関数は転置を暗黙的に実行し、他の演算に必要な場合のみ転置を直接行います。

permute

入力 dlarray が書式化されている場合、置換は同じラベルが付いている次元でのみ行われなければなりません。この関数は置換を暗黙的に実行し、他の演算に必要な場合のみ置換を直接行います。

transpose, .'

入力 dlarray が書式化されている場合、両方の次元のラベルは同じでなければなりません。この関数は転置を暗黙的に実行し、他の演算に必要な場合のみ転置を直接行います。

連結関数

関数注意と制限
cat

dlarray 入力は、形式が一致しているか、書式化されていないものでなければなりません。書式化されている入力と書式化されていない入力を混在させることができます。いずれかの dlarray 入力が書式化されている場合、出力 dlarray は同じデータ形式で書式化されます。

horzcat
vertcat

変換関数

関数注意と制限
cast
  • cast(A,newdatatype) は、dlarray A のデータを基となるデータ型 newdatatypedlarray にコピーします。newdatatype オプションは 'double''single'、または 'logical' でなければなりません。出力 dlarrayA と同じデータ形式で書式化されます。

  • cast(A,'like',Y) は、Y と同じ型の配列を返します。Ydlarray である場合、出力は基となるデータ型が Y と同じ dlarray になります。Y が GPU にある場合、出力は GPU にあります。AY が両方とも dlarray オブジェクトである場合、出力 dlarray は入力 A と同じデータ形式で書式化されます。

double

出力は double 型のデータが含まれる dlarray です。

gather (Parallel Computing Toolbox)
  • サポートされている構文は次のとおりです。

    • X = gather(A)

    • [X,Y,Z,...] = gather(A,B,C,...)

  • gather(A) は、数値データまたは logical データが含まれる dlarray を返します。この関数は、dlarray A 内の基となるデータに gather を適用します。A が GPU にある場合、X は GPU ではなくローカルのワークスペースにあります。A が (GPU ではなく) ローカルのワークスペースにある場合、XA に等しくなります。

  • gather(A,B,C,...) は複数の配列を収集します。

gpuArray (Parallel Computing Toolbox)
  • この関数には Parallel Computing Toolbox™ が必要です。

  • gpuArraygpuArray を含む dlarray を返します。この関数は、基となるデータに gpuArray を適用します。入力 dlarray がローカルのワークスペースにある場合、そのデータは GPU に移動され、内部的に gpuArray として表されます。入力 dlarray が GPU にある場合、出力 dlarray は入力 dlarray に等しくなります。

logical出力は logical 型のデータが含まれる dlarray です。
single出力は single 型のデータが含まれる dlarray です。

比較関数

関数注意と制限
isequal
  • 2 つを超える入力引数がある構文はサポートされません。

  • 2 つの dlarray 入力が表す数値データが等しく、その両方が同じデータ形式で書式化されているか、あるいは書式化されていない場合、これらの入力は等しくなります。

isequaln
  • 2 つを超える入力引数がある構文はサポートされません。

  • 2 つの dlarray 入力が表す数値データが等しく (NaN は同等として扱う)、これらの両方が同じデータ形式で書式化されているか、書式化されていない場合、これらの入力は等しくなります。

データ型と値を識別する関数

関数注意と制限
isdlarray N/A
isfinite

この関数は入力 dlarray の基となるデータに適用されます。

isfloat
isgpuarray (Parallel Computing Toolbox)
isinf
islogical
isnan
isnumeric
isreal
isUnderlyingTypeN/A
mustBeUnderlyingType
underlyingType
validateattributes入力配列 A が書式化された dlarray である場合、その次元は "SCBTU" の順序に従って並べ替えられます。サイズの検証は並べ替え後に適用されます。

サイズ識別関数

関数注意と制限
iscolumnこの関数は、列ベクトルで、最初の次元を除く各次元の大きさが 1 である dlarray に対して true を返します。たとえば、3 x 1 x 1 の dlarray は列ベクトルです。
ismatrixこの関数は、2 つの次元のみをもつ dlarray オブジェクト、および最初の 2 つの次元を除く各次元の大きさが 1 である dlarray オブジェクトに対して true を返します。たとえば、3 x 4 x 1 の dlarray は行列です。
isrowこの関数は、行ベクトルで、2 番目の次元を除く各次元の大きさが 1 である dlarray に対して true を返します。たとえば、1 x 3 x 1 の dlarray は行ベクトルです。
isscalarN/A
isvectorこの関数は、行ベクトルまたは列ベクトルである dlarray に対して true を返します。isvector では 1 x 1 x 3 の dlarray がベクトルであるとは見なされないことに注意してください。
lengthN/A
ndims

入力 dlarray X が書式化されている場合、一部のラベル付きの次元の末尾が大きさ 1 の次元であっても、ndims(X) は次元ラベルの数を返します。

numelN/A
size

入力 dlarray X が書式化されている場合、一部のラベル付きの次元の末尾が大きさ 1 の次元であっても、size(X) は次元ラベルの数に等しい長さのベクトルを返します。

作成関数

関数注意と制限
falsedlarray では 'like' 構文のみがサポートされています。
inf
nan
ones
rand
randi
randn
true
zeros

文字列および文字関数

可視化関数

関数注意と制限
plotプロット関数はトレースをサポートしていません。
addpoints

dlarray の主な動作

データ形式での暗黙的な拡張

一部の関数は、暗黙的な拡張を使用して書式化されている 2 つの dlarray 入力を結合します。関数は、必要に応じて、ラベル付けされた大きさが 1 の次元 (サイズ 1 の次元) を入力に導入し、それらの形式を一致させます。同じラベルが付いた次元の各ブロックの最後に、関数によって大きさが 1 の次元が挿入されます。

この動作の例を確認するには、次のコードを入力します。

X = ones(2,3,2);
X = dlarray(X,'SCB')
Y = 1:3;
Y = dlarray(Y,'C')
Z = X.*Y
X = 

  2(S) × 3(C) × 2(B) dlarray


(:,:,1) =

     1     1     1
     1     1     1


(:,:,2) =

     1     1     1
     1     1     1


Y = 

  3(C) × 1(U) dlarray

     1
     2
     3


Z = 

  2(S) × 3(C) × 2(B) dlarray


(:,:,1) =

     1     2     3
     1     2     3


(:,:,2) =

     1     2     3
     1     2     3
この例では、インデックス ij、および k について Z(i,j,k) = X(i,j,k).*Y(j) になります。Z の 2 番目の次元 ('C' というラベルが付いている) は、X の 2 番目の次元および Y の最初の次元に対応します。

一般的に、一方の dlarray 入力の形式が、もう片方の dlarray 入力の形式のサブセットである必要はありません。たとえば、X および Ydims(X) = 'SCB' および dims(Y) = 'SSCT' をもつ入力引数である場合、出力 Zdims(Z) = 'SSCBT' をもちます。X'S' 次元は、Y の最初の 'S' 次元にマッピングされます。

'U' 次元の特殊な動作

dlarray'U' 次元の動作は、標準的な MATLAB の大きさが 1 の次元の動作を示す他のラベル付きの次元とは異なります。書式化された dlarray は、size によって返される次元にしたがって、サイズ 1 の 'U' 次元を無数にもつと考えることができます。

次元の大きさが 1 ではない、または dlarray の最初の 2 つの次元のいずれかである場合を除き、'U' ラベルは破棄されます。

この動作の例を確認するには、次のコードを入力します。

X = ones(2,2);
X = dlarray(X,'SC')
X(:,:,2) = 2
X = 

  2(S) × 2(C) dlarray

     1     1
     1     1


X = 

  2(S) × 2(C) × 2(U) dlarray


(:,:,1) =

     1     1
     1     1


(:,:,2) =

     2     2
     2     2
この例では、ソフトウェアが書式化された 2 次元の dlarray を 3 次元の dlarray に拡張し、既定で 3 番目の次元に 'U' というラベルを付けています。暗黙的な拡張で 'U' 次元を使用する方法の例については、データ形式での暗黙的な拡張を参照してください。

インデックス

dlarray でのインデックス付けがサポートされています。これは次の動作を示します。

  • nndims(X) 以上の場合、X(idx1,...,idxn) は、X と同じデータ形式をもつ dlarray を返します。そうでない場合、書式化されていない dlarray を返します。

  • Y(idx1,...,idxn) = X を設定すると、Y のデータ形式は保持されますが、ソフトウェアが末尾の 'U' 次元ラベルを追加したり削除することがあります。X のデータ形式はこの操作には影響しません。

  • X(idx1,…,idxn) = [] を使用して dlarray の一部を削除した場合、X のデータ形式は、nndims(X) 以上であれば保持されます。そうでない場合、X は書式化されずに返されます。

丸め誤差

関数に dlarray 入力を使用する場合、関数内の演算の順序は dlarray の内部保存の順序によって変化します。この変化によって、2 つの dlarray オブジェクトの丸めの順序に違いが生じます。それ以外の場合には、これらのオブジェクトの丸めの順序は等しくなります。

参考

| | |

関連するトピック