警告:このAPIは非推奨であり、置き換えが安定した後 TensorFlowの将来のバージョンで削除される予定です。

このページは Cloud Translation API によって翻訳されました。
Switch to English

MatrixSetDiagV3

パブリックファイナルクラスMatrixSetDiagV3

新しいバッチ対角値を持つバッチ行列テンソルを返します。

`input`と` diagonal`が与えられると、この操作は、最も内側の行列の指定された対角線を除いて、 `input`と同じ形状と値を持つテンソルを返します。これらは `diagonal`の値で上書きされます。

`input`は` r + 1`次元 `[I、J、...、L、M、N]`を持っています。 `k`がスカラーまたは` k [0] == k [1] `の場合、` diagonal`は `r`次元` [I、J、...、L、max_diag_len] `を持ちます。それ以外の場合は、 `r + 1`次元` [I、J、...、L、num_diags、max_diag_len] `があります。 `num_diags`は対角線の数、` num_diags = k [1] --k [0] + 1`です。 `max_diag_len`は、` [k [0]、k [1]] `、` max_diag_len = min(M + min(k [1]、0)、N + min(-k [0] 、0)) `

出力は、次元が `[I、J、...、L、M、N]`のランク `k + 1`のテンソルです。 `k`がスカラーまたは` k [0] == k [1] `の場合:

output[i, j, ..., l, m, n]
   = diagonal[i, j, ..., l, n-max(k[1], 0)] ; if n - m == k[1]
     input[i, j, ..., l, m, n]              ; otherwise
 
それ以外の場合、
output[i, j, ..., l, m, n]
   = diagonal[i, j, ..., l, diag_index, index_in_diag] ; if k[0] <= d <= k[1]
     input[i, j, ..., l, m, n]                         ; otherwise
 
ここで、` d = n --m`、 `diag_index = k [1] --d`、および` index_in_diag = n- max(d、0)+オフセット `。

対角線の位置合わせが右にある場合を除いて、 `offset`はゼロです。

offset = max_diag_len - diag_len(d) ; if (`align` in {RIGHT_LEFT, RIGHT_RIGHT
                                            and `d >= 0`) or
                                          (`align` in {LEFT_RIGHT, RIGHT_RIGHT}
                                            and `d <= 0`)
          0                          ; otherwise
 }
ここで、 `diag_len(d)= min(cols --max(d、0)、rows + min(d、0))`。

例:

# The main diagonal.
 input = np.array([[[7, 7, 7, 7],              # Input shape: (2, 3, 4)
                    [7, 7, 7, 7],
                    [7, 7, 7, 7]],
                   [[7, 7, 7, 7],
                    [7, 7, 7, 7],
                    [7, 7, 7, 7]]])
 diagonal = np.array([[1, 2, 3],               # Diagonal shape: (2, 3)
                      [4, 5, 6]])
 tf.matrix_set_diag(input, diagonal)
   ==> [[[1, 7, 7, 7],  # Output shape: (2, 3, 4)
         [7, 2, 7, 7],
         [7, 7, 3, 7]],
        [[4, 7, 7, 7],
         [7, 5, 7, 7],
         [7, 7, 6, 7]]]
 
 # A superdiagonal (per batch).
 tf.matrix_set_diag(input, diagonal, k = 1)
   ==> [[[7, 1, 7, 7],  # Output shape: (2, 3, 4)
         [7, 7, 2, 7],
         [7, 7, 7, 3]],
        [[7, 4, 7, 7],
         [7, 7, 5, 7],
         [7, 7, 7, 6]]]
 
 # A band of diagonals.
 diagonals = np.array([[[0, 9, 1],  # Diagonal shape: (2, 4, 3)
                        [6, 5, 8],
                        [1, 2, 3],
                        [4, 5, 0]],
                       [[0, 1, 2],
                        [5, 6, 4],
                        [6, 1, 2],
                        [3, 4, 0]]])
 tf.matrix_set_diag(input, diagonals, k = (-1, 2))
   ==> [[[1, 6, 9, 7],  # Output shape: (2, 3, 4)
         [4, 2, 5, 1],
         [7, 5, 3, 8]],
        [[6, 5, 1, 7],
         [3, 1, 6, 2],
         [7, 4, 2, 4]]]
 
 # LEFT_RIGHT alignment.
 diagonals = np.array([[[9, 1, 0],  # Diagonal shape: (2, 4, 3)
                        [6, 5, 8],
                        [1, 2, 3],
                        [0, 4, 5]],
                       [[1, 2, 0],
                        [5, 6, 4],
                        [6, 1, 2],
                        [0, 3, 4]]])
 tf.matrix_set_diag(input, diagonals, k = (-1, 2), align="LEFT_RIGHT")
   ==> [[[1, 6, 9, 7],  # Output shape: (2, 3, 4)
         [4, 2, 5, 1],
         [7, 5, 3, 8]],
        [[6, 5, 1, 7],
         [3, 1, 6, 2],
         [7, 4, 2, 4]]]
 
 

ネストされたクラス

クラスMatrixSetDiagV3.Options MatrixSetDiagV3オプションの属性

パブリックメソッド

静的MatrixSetDiagV3.Options
align (文字列整列)
出力<T>
asOutput ()
テンソルのシンボリックハンドルを返します。
static <T> MatrixSetDiagV3 <T>
createスコープスコープ、オペランド<T>入力、オペランド<T>対角線、オペランド<整数> k、オプション...オプション)
新しいMatrixSetDiagV3操作をラップするクラスを作成するファクトリメソッド。
出力<T>
出力()
`r + 1`をランク付けし、` output.shape = input.shape`を使用します。

継承されたメソッド

パブリックメソッド

public static MatrixSetDiagV3.Options align (String align)

パラメーター
整列一部の対角線は `max_diag_len`よりも短く、パディングする必要があります。 `align`は、スーパーダイアゴナルとサブダイアゴナルをそれぞれどのように整列させるかを指定する文字列です。可能な配置には、「RIGHT_LEFT」(デフォルト)、「LEFT_RIGHT」、「LEFT_LEFT」、および「RIGHT_RIGHT」の4つがあります。 「RIGHT_LEFT」は、スーパーダイアゴナルを右に揃え(行を左にパディング)、サブダイアゴナルを左に揃えます(行を右にパディングします)。 LAPACKが使用するパッキングフォーマットです。 cuSPARSEは、反対の配置である「LEFT_RIGHT」を使用します。

public Output <T> asOutput ()

テンソルのシンボリックハンドルを返します。

TensorFlow操作への入力は、別のTensorFlow操作の出力です。このメソッドは、入力の計算を表すシンボリックハンドルを取得するために使用されます。

public static MatrixSetDiagV3 <T> create スコープスコープ、オペランド<T>入力、オペランド<T>対角線、オペランド<整数> k、オプション...オプション)

新しいMatrixSetDiagV3操作をラップするクラスを作成するファクトリメソッド。

パラメーター
範囲現在のスコープ
入力ランク `r + 1`、ここで` r> = 1`。
対角線`k`が整数または` k [0] == k [1] `の場合、` r`をランク付けします。それ以外の場合、ランクは `r + 1`です。 `k> = 1`。
k対角オフセット。正の値は超対角を意味し、0は主対角を示し、負の値は副対角を意味します。 `k`は、単一の整数(単一の対角線の場合)または行列バンドの下限と上限を指定する整数のペアにすることができます。 `k [0]`は `k [1]`より大きくてはいけません。
オプションオプションの属性値を運ぶ
戻り値
  • MatrixSetDiagV3の新しいインスタンス

public Output <T> output ()

`r + 1`をランク付けし、` output.shape = input.shape`を使用します。