tensorflow:: ops:: MatrixDiagV2
#include <array_ops.h>指定されたバッチ化された対角値を持つ、バッチ化された対角テンソルを返します。
まとめ
diagonal成分が行列のk[0]番目からk[1]番目までの対角成分であり、それ以外の成分はpaddingで埋められたテンソルを返します。 num_rowsとnum_cols 、出力の最も内側の行列の次元を指定します。両方が指定されていない場合、操作は最も内側の行列が正方行列であると想定し、 kとdiagonalの最も内側の次元からそのサイズを推測します。どちらか一方のみが指定されている場合、操作は指定されていない値が他の基準に基づいて可能な最小値であると想定します。
diagonal要素の次元をrとします[I, J, ..., L, M, N] 。対角要素が 1 つだけ与えられた場合 ( kが整数またはk[0] == k[1]場合) は、出力テンソルのランクはr+1で、形状は[I, J, ..., L, M, num_rows, num_cols]となります。それ以外の場合は、ランクはrで、形状は[I, J, ..., L, num_rows, num_cols]となります。
diagonalの2番目に内側の次元は二重の意味を持ちます。kがスカラーまたはk k[0] == k[1]の場合、 Mはバッチサイズ[I, J, ..., M]の一部であり、出力テンソルは次のようになります。
output[i, j, ..., l, m, n]
= diagonal[i, j, ..., l, n-max(d_upper, 0)] ; if n - m == d_upper
padding_value ; otherwiseそれ以外の場合、 Mは同じバッチ内の行列の対角要素の数 ( M = k[1]-k[0]+1 ) として扱われ、出力テンソルは次のようになります。
output[i, j, ..., l, m, n]
= diagonal[i, j, ..., l, diag_index, index_in_diag] ; if k[0] <= d <= k[1]
padding_value ; otherwised = n - m 、 diag_index = k[1] - d 、 index_in_diag = n - max(d, 0)である。例えば:
# The main diagonal. diagonal = np.array([[1, 2, 3, 4], # Input shape: (2, 4) [5, 6, 7, 8]]) tf.matrix_diag(diagonal) ==> [[[1, 0, 0, 0], # Output shape: (2, 4, 4) [0, 2, 0, 0], [0, 0, 3, 0], [0, 0, 0, 4]], [[5, 0, 0, 0], [0, 6, 0, 0], [0, 0, 7, 0], [0, 0, 0, 8]]]
# A superdiagonal (per batch). diagonal = np.array([[1, 2, 3], # Input shape: (2, 3) [4, 5, 6]]) tf.matrix_diag(diagonal, k = 1) ==> [[[0, 1, 0, 0], # Output shape: (2, 4, 4) [0, 0, 2, 0], [0, 0, 0, 3], [0, 0, 0, 0]], [[0, 4, 0, 0], [0, 0, 5, 0], [0, 0, 0, 6], [0, 0, 0, 0]]]
# A band of diagonals. diagonals = np.array([[[1, 2, 3], # Input shape: (2, 2, 3) [4, 5, 0]], [[6, 7, 9], [9, 1, 0]]]) tf.matrix_diag(diagonals, k = (-1, 0)) ==> [[[1, 0, 0], # Output shape: (2, 3, 3) [4, 2, 0], [0, 5, 3]], [[6, 0, 0], [9, 7, 0], [0, 1, 9]]]
# Rectangular matrix. diagonal = np.array([1, 2]) # Input shape: (2) tf.matrix_diag(diagonal, k = -1, num_rows = 3, num_cols = 4) ==> [[0, 0, 0, 0], # Output shape: (3, 4) [1, 0, 0, 0], [0, 2, 0, 0]]
# Rectangular matrix with inferred num_cols and padding_value = 9. tf.matrix_diag(diagonal, k = -1, num_rows = 3, padding_value = 9) ==> [[9, 9], # Output shape: (3, 2) [1, 9], [9, 2]]
議論:
- スコープ:スコープオブジェクト
- 対角線:ランク
r、ただしr >= 1 - k: 対角オフセット。正の値はスーパー対角、0 は主対角、負の値はサブ対角を意味します。k
k単一の整数 (単一の対角の場合) または行列バンドの下限と上限を指定する整数のペアです。kk[0]k[1]より大きくあってはなりません。 - num_rows: 出力行列の行数。指定しない場合、演算は出力行列が正方行列であると想定し、k と
diagonalの最も内側の次元から行列のサイズを推測します。 - num_cols: 出力行列の列数。指定しない場合、演算は出力行列が正方行列であると想定し、k と
diagonalの最内次元から行列サイズを推測します。 - padding_value: 指定された対角線の外側の領域を埋める数値。デフォルト値は0です。
返品:
-
Output:kが整数またはk[0] == k[1]の場合はランクr+1、それ以外の場合はランクr。
コンストラクターとデストラクタ | |
|---|---|
MatrixDiagV2 (const :: tensorflow::Scope & scope, :: tensorflow::Input diagonal, :: tensorflow::Input k, :: tensorflow::Input num_rows, :: tensorflow::Input num_cols, :: tensorflow::Input padding_value) |
公開属性 | |
|---|---|
operation | |
output | |
公的機能 | |
|---|---|
node () const | ::tensorflow::Node * |
operator::tensorflow::Input () const | |
operator::tensorflow::Output () const | |
公開属性
手術
Operation operation
出力
::tensorflow::Output output
公的機能
マトリックスダイアグラムV2
MatrixDiagV2( const ::tensorflow::Scope & scope, ::tensorflow::Input diagonal, ::tensorflow::Input k, ::tensorflow::Input num_rows, ::tensorflow::Input num_cols, ::tensorflow::Input padding_value )
ノード
::tensorflow::Node * node() const
operator::tensorflow::Input
operator::tensorflow::Input() const
operator::tensorflow::Output
operator::tensorflow::Output() const