pypto.SymbolicScalar.max#
产品支持情况#
产品 |
是否支持 |
|---|---|
Atlas A3 训练系列产品/Atlas A3 推理系列产品 |
√ |
Atlas A2 训练系列产品/Atlas A2 推理系列产品 |
√ |
功能说明#
计算两个符号标量的最大值。
使用场景#
当需要对 SymbolicScalar(如从 tensor.shape 获取的动态维度值)进行比较时,应使用此方法。
与 pypto.maximum 的区别:
pypto.maximum:用于 Tensor 的逐元素最大值计算SymbolicScalar.max:用于符号标量的最大值计算
不支持 Python 三元表达式:
# ❌ 错误:不支持三元表达式
cur_seq = kv_act_seqs[b_idx]
tmp = cur_seq - s2_idx * s2_tile
actual = tmp if tmp > threshold else threshold
# ✅ 正确:使用 .max() 方法
actual = (cur_seq - s2_idx * s2_tile).max(threshold)
函数原型#
max(self, other: 'SymbolicScalar | int') -> 'SymbolicScalar'
参数说明#
参数名 |
输入/输出 |
说明 |
|---|---|---|
other |
输入 |
待比较的符号标量或整数。 |
返回值说明#
两个值中的最大值。
约束说明#
如果两个值都是具体的,将返回具体的常量值
如果至少有一个不是具体的,将返回符号表达式
调用示例#
s1 = pypto.SymbolicScalar(10)
s2 = pypto.SymbolicScalar(5)
out1 = s1.max(s2)
out2 = s1.max(13)
s3 = pypto.SymbolicScalar("x")
out3 = s3.max(2)
结果示例如下:
输出数据out1: 10
输出数据out2: 13
输出数据out3: RUNTIME_Max(x, 2)