pytroch发布的torch.fx工具包可以说是很好的消除一些动态图和静态图的Gap,可以使得我们对于nn.Module的各种变化操作变得非常简单。
动态图和静态图:
动态意味着程序将按照我们编写命令的顺序进行执行。这种机制将使得调试更加容易,并且也使得我们将大脑中的想法转化为实际代码变得更加容易。而静态则意味着程序在编译执行时将先生成神经网络的结构,然后再执行相应操作。按照动态图和静态图最明显的两个框架就是pytorch和tensorflow两个。
静态图的优势就在于,因为我们提前获知了模型结构,这就更方便于我们做一些变化,比如量化和算子融合。但是缺点就在于,不够灵活,我们不能随心所欲,天马行空的设计我们的模型结构。而动态图,程序将按照我们编写命令的顺序进行执行。这种机制将使得调试更加容易,并且也使得我们将大脑中的想法转化为实际代码变得更加容易。
最简单的例子比如,tensorflow中没有forward,而pytorch中有forward.
torch.fx
torch,fx,这是一个用于捕获和转换PyTorch程序的纯Python系统。主要分为三个结构块:符号追踪器(symbolic tracer),中间表示(intermediate representation), Python代码生成(Python code generation)。
这三个组件可以做什么?直观看起来,torch.fx做的就是将一个Module转换为静态图。首先,通过追踪器获取到模型的graph,从而产生中间表示,对于中间表示我们做一系列变化,再通过python代码生成来

本文介绍了PyTorch中torch.fx工具包如何简化神经网络的动态图与静态图转换及模型量化过程。通过torch.fx,可以自动追踪模型结构并进行量化,显著减少手动修改代码的需求。
最低0.47元/天 解锁文章
510

被折叠的 条评论
为什么被折叠?



