tvm.relay学习(三)——relay变量

        受LLVM的启发,Relay在抽象语法树和文本格式中显式的区分全局变量和局部变量。在文本格式中,全局变量和局部变量通过前缀和sigils来区分。全局变量以@为前缀,局部变量以%为前缀。这种显式的区分使得某些优化很容易被实施。例如,内联全局定义无需进行分析:只需替换定义即可。

全局变量:

        全局标志符以@标志前缀来区分,例如“@global”。全局标识符始终引用包含在全局可见环境(称为模块)中的全局可见定义。 全局标识符必须唯一。在https://docs.tvm.ai/api/python/relay/expr.html#tvm.relay.expr.GlobalVar中可以查看其定义和文档。

局部变量:

        局部标志符以%标志前缀来区分,例如“%local”。局部标识符始终引用函数参数或在let表达式中绑定的变量,并且将范围分别限制为出现它的函数或它绑定的let表达式。

        在下面的代码段中,请注意%a定义了两次。 与大多数功能语言一样,这是允许的; 在第二个let表达式的范围中,名称%a被“阴影化”,这意味着内部范围中对%a的所有引用均引用后面的定义,而外部范围中对%a的引用继续引用第一个定义 。

let %a = 1;
let %b = 2 * %a;  // %b = 2
let %a = %a + %a; // %a = 2. %a is shadowed
%a + %b           // has value 2 + 2 = 4

       在https://docs.tvm.ai/api/python/relay/expr.html#tvm.relay.expr.Var中可以查看其定义和文档。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值