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
标量。步进值。
输出¶
output (异构) - T
一个与输入类型相同的 1-D 张量,包含生成的范围值。
类型约束¶
T 在 (
tensor(double)
,tensor(float)
,tensor(int16)
,tensor(int32)
,tensor(int64)
) 中将输入类型约束为通用数值类型张量。