JIT just-in-time Compilation
即时翻译
pytorch和tensorflow存在差异
pytorch使用动态图结构,这使得其更加简单
TorchScript(这是搜索Pytorch JIT首先出来的结果)
动态图模型通过牺牲一些高级特性来换取易用性
JIT是python和C++的桥梁
我们可以使用python训练模型,然后通过JIT将模型转为语言无关的模块,从而让C++可以非常方便的调用
如果推断的场景对性能要求高,则可以考虑将模型(torch.nn.Module)转换为TorchScript Module,再进行推断
Tensorflow或keras对模型可视化工具(TensorBoard等)非常友好,因为本身就是静态图的编程模型,在模型定义好后整个模型的结构和正向逻辑就已经清楚了
可以使用JIT的trace功能来得到PyTorch模型针对某一输入的正向逻辑,通过正向逻辑可以得到模型大致的结构,但是如果在forward
方法中有很多条件控制语句,这依然不是一个好的方法,所以PyTorch JIT还提供了Scripting的方法