当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python tf.raw_ops.ReverseSequence用法及代码示例


反转可变长度切片。

用法

tf.raw_ops.ReverseSequence(
    input, seq_lengths, seq_dim, batch_dim=0, name=None
)

参数

  • input 一个Tensor。要反转的输入。
  • seq_lengths 一个Tensor。必须是以下类型之一:int32 , int64。长度为 input.dims(batch_dim)max(seq_lengths) <= input.dims(seq_dim) 的一维
  • seq_dim 一个 int 。部分反转的维度。
  • batch_dim 可选的 int 。默认为 0 。执行冲销的维度。
  • name 操作的名称(可选)。

返回

  • 一个Tensor。具有与 input 相同的类型。

此操作首先沿维度 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 然后由输入切片 i 给出,沿维度 seq_dim 的第一个 seq_lengths[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,:, ...]

相关用法


注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.raw_ops.ReverseSequence。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。