可変長スライスを反転します。
この操作はまず、次元 `batch_dim` に沿って `input` をスライスし、スライス `i` ごとに、次元 `seq_dim` に沿って最初の `seq_lengths[i]` 要素を反転します。
`seq_lengths` の要素は `seq_lengths[i] <= input.dims[seq_dim]` に従う必要があり、`seq_lengths` は長さ `input.dims[batch_dim]` のベクトルでなければなりません。
次元「batch_dim」に沿った出力スライス「i」は、次元「seq_dim」に沿った最初の「seq_lengths[i]」スライスを反転した入力スライス「i」によって与えられます。
例えば:
# Given this:
batch_dim = 0
seq_dim = 1
input.dims = (4, 8, ...)
seq_lengths = [7, 2, 3, 5]
# then slices of input are reversed on seq_dim, but only up to seq_lengths:
output[0, 0:7, :, ...] = input[0, 7:0:-1, :, ...]
output[1, 0:2, :, ...] = input[1, 2:0:-1, :, ...]
output[2, 0:3, :, ...] = input[2, 3:0:-1, :, ...]
output[3, 0:5, :, ...] = input[3, 5:0:-1, :, ...]
# while entries past seq_lens are copied through:
output[0, 7:, :, ...] = input[0, 7:, :, ...]
output[1, 2:, :, ...] = input[1, 2:, :, ...]
output[2, 3:, :, ...] = input[2, 3:, :, ...]
output[3, 2:, :, ...] = input[3, 2:, :, ...]
対照的に、次の場合: # Given this:
batch_dim = 2
seq_dim = 0
input.dims = (8, ?, 4, ...)
seq_lengths = [7, 2, 3, 5]
# then slices of input are reversed on seq_dim, but only up to seq_lengths:
output[0:7, :, 0, :, ...] = input[7:0:-1, :, 0, :, ...]
output[0:2, :, 1, :, ...] = input[2:0:-1, :, 1, :, ...]
output[0:3, :, 2, :, ...] = input[3:0:-1, :, 2, :, ...]
output[0:5, :, 3, :, ...] = input[5:0:-1, :, 3, :, ...]
# while entries past seq_lens are copied through:
output[7:, :, 0, :, ...] = input[7:, :, 0, :, ...]
output[2:, :, 1, :, ...] = input[2:, :, 1, :, ...]
output[3:, :, 2, :, ...] = input[3:, :, 2, :, ...]
output[2:, :, 3, :, ...] = input[2:, :, 3, :, ...]
ネストされたクラス
クラス | ReverseSequence.Options | ReverseSequence のオプションの属性 |
パブリックメソッド
出力<T> | asOutput () テンソルのシンボリック ハンドルを返します。 |
静的ReverseSequence.Options | バッチディム(長いバッチディム) |
static <T, U extends Number> ReverseSequence <T> | |
出力<T> | 出力() 部分的に反転した入力。 |
継承されたメソッド
パブリックメソッド
public Output <T> asOutput ()
テンソルのシンボリック ハンドルを返します。
TensorFlow オペレーションへの入力は、別の TensorFlow オペレーションの出力です。このメソッドは、入力の計算を表すシンボリック ハンドルを取得するために使用されます。
public static ReverseSequence <T> create (スコープscope、オペランド<T>入力、オペランド<U> seqLengths、Long seqDim、オプション...オプション)
新しい ReverseSequence オペレーションをラップするクラスを作成するためのファクトリ メソッド。
パラメータ
範囲 | 現在のスコープ |
---|---|
入力 | リバースする入力。 |
シーケンスの長さ | 長さが `input.dims(batch_dim)` および `max(seq_lengths) <= input.dims(seq_dim)` の 1 次元 |
シーケンスディム | 部分的に反転した次元。 |
オプション | オプションの属性値を持ちます |
返品
- ReverseSequence の新しいインスタンス