Relay IR represents.
发布时间
阅读量:
阅读量
Relay IR表示
Relay IR简介
本节内容主要介绍 Relay IR——作为第二代 NNVM 的中间表示形式。该部分内容旨在为两类读者提供参考,一类是具备编程语言背景的人员,另一类则是对计算图表示有一定了解的深度学习框架开发者。
简要概述了设计目标以及讨论的核心要点。
• 兼容传统数据流式编程与转换方式。
• 支持函数作用域及 let 绑定,使其成为一种功能完善的可微分语言。
• 允许用户融合两种不同的编程风格进行开发。
使用 Relay 构建计算图
在传统的深度学习框架中,通常采用计算图作为中间表示形式。计算图(或称数据流图)是一种有向无环图(DAG),用于描述计算过程。由于缺乏控制流结构,这种数据流图在表达能力上受到一定限制,但其优势在于易于实现自动微分和异构执行环境下的编译(如在专用硬件上执行)。
通过 Relay 可以构建出计算(数据流)图。如何构造一个包含两个节点的简单图形?以下示例语法与 NNVMv1 等现有计算图 IR 的区别在于:
• 传统框架多采用图和子图的方式进行组织;
• Relay 则使用函数来表示图形,例如 fn (%x) 这样的形式。
每个数据流节点在 Relay 中都对应一个 CallNode。利用 Relay Python DSL 可以快速构建数据流图。例如构造 Add 节点时,两个输入均指向
全部评论 (0)
还没有任何评论哟~
