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


Python mxnet.ndarray.SequenceMask用法及代码示例


用法:

mxnet.ndarray.SequenceMask(data=None, sequence_length=None, use_sequence_length=_Null, value=_Null, axis=_Null, out=None, name=None, **kwargs)

参数

  • data(NDArray) - 形式为 [max_sequence_length, batch_size, other_feature_dims] 的 n 维输入数组,其中 n>2
  • sequence_length(NDArray) - [batch_size] 形式的序列长度向量
  • use_sequence_length(boolean, optional, default=0) - 如果设置为 true,则该层接受一个额外的输入参数sequence_length指定可变长度序列
  • value(float, optional, default=0) - 用作掩码的值。
  • axis(int, optional, default='0') - 序列轴。当前仅支持 0 和 1 的值。
  • out(NDArray, optional) - 输出 NDArray 来保存结果。

返回

out- 此函数的输出。

返回类型

NDArray 或 NDArray 列表

将序列外的所有元素设置为常量值。

此函数采用 [max_sequence_length, batch_size, other_feature_dims] 形式的 n 维输入数组,并返回相同形状的数组。

参数sequence_length 用于处理可变长度序列。 sequence_length 应该是维度为 [batch_size] 的正整数的输入数组。要使用此参数,请将 use_sequence_length 设置为 True ,否则批处理中的每个示例都假定具有最大序列长度,并且此运算符用作 identity 运算符。

例子:

x = [[[  1.,   2.,   3.],
      [  4.,   5.,   6.]],

     [[  7.,   8.,   9.],
      [ 10.,  11.,  12.]],

     [[ 13.,  14.,   15.],
      [ 16.,  17.,   18.]]]

// Batch 1
B1 = [[  1.,   2.,   3.],
      [  7.,   8.,   9.],
      [ 13.,  14.,  15.]]

// Batch 2
B2 = [[  4.,   5.,   6.],
      [ 10.,  11.,  12.],
      [ 16.,  17.,  18.]]

// works as identity operator when sequence_length parameter is not used
SequenceMask(x) = [[[  1.,   2.,   3.],
                    [  4.,   5.,   6.]],

                   [[  7.,   8.,   9.],
                    [ 10.,  11.,  12.]],

                   [[ 13.,  14.,   15.],
                    [ 16.,  17.,   18.]]]

// sequence_length [1,1] means 1 of each batch will be kept
// and other rows are masked with default mask value = 0
SequenceMask(x, sequence_length=[1,1], use_sequence_length=True) =
             [[[  1.,   2.,   3.],
               [  4.,   5.,   6.]],

              [[  0.,   0.,   0.],
               [  0.,   0.,   0.]],

              [[  0.,   0.,   0.],
               [  0.,   0.,   0.]]]

// sequence_length [2,3] means 2 of batch B1 and 3 of batch B2 will be kept
// and other rows are masked with value = 1
SequenceMask(x, sequence_length=[2,3], use_sequence_length=True, value=1) =
             [[[  1.,   2.,   3.],
               [  4.,   5.,   6.]],

              [[  7.,   8.,   9.],
               [  10.,  11.,  12.]],

              [[   1.,   1.,   1.],
               [  16.,  17.,  18.]]]

相关用法


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