Range¶
Range - 11¶
版本¶
- 名称: Range (GitHub) 
- 域: - main
- 起始版本: - 11
- 函数: - True
- 支持级别: - SupportType.COMMON
- 形状推断: - True
此版本的运算符自 版本 11 起可用。
摘要¶
生成一个张量,其中包含一个从 start 开始、以 delta 为增量、直到 limit(不包含)的数字序列。
range 的输出元素数量计算如下
number_of_elements = max( ceil( (limit - start) / delta ) , 0 )
确定输出内容的伪代码如下所示
for(int i=0; i<number_of_elements; ++i) {
  output[i] =  start + (i * delta);
}
示例 1
Inputs: start = 3, limit = 9, delta = 3
Output: [3, 6]
示例 2
Inputs: start = 10, limit = 4, delta = -2
Output: [10, 8, 6]
函数体¶
此操作符的函数定义。
<
  domain: "",
  opset_import: ["" : 11]
>
Range (start, limit, delta) => (output)
{
   sub_result = Sub (limit, start)
   sub_result_casted = Cast <to: int = 1> (sub_result)
   delta_casted = Cast <to: int = 1> (delta)
   div_result = Div (sub_result_casted, delta_casted)
   ceil_result = Ceil (div_result)
   ceil_result_relu = Relu (ceil_result)
   ceil_result_relu_int = Cast <to: int = 7> (ceil_result_relu)
   ceil_result_relu_bool = Cast <to: int = 9> (ceil_result_relu)
   variadic_output, output = Loop (ceil_result_relu_int, ceil_result_relu_bool, start) <body: graph = loop_body_attribute (int64 i, bool cond,  prev) => ( cond_out,  current,  range) {
      cond_out = Identity (cond)
      current = Add (prev, delta)
      range = Identity (prev)
   }>
}
输入¶
- start (异构) - T - 标量。输出值范围的第一个条目。 
- limit (异构) - T - 标量。输出值范围的排除性上限。 
- delta (异构) - T - 标量。步长值。 
输出¶
- 输出 (异构) - T - 一个与输入类型相同的 1-D 张量,包含生成的数值范围。 
类型约束¶
- T 在 ( - tensor(double),- tensor(float),- tensor(int16),- tensor(int32),- tensor(int64))- 将输入类型限制为常见的数值类型张量。