TorchScript简介及踩坑分析
发布时间
阅读量:
阅读量
近期参与的项目中,需要优化模型的运行效率并减少执行耗时。在探索过程中接触到TorchScript这一工具,此前未曾使用过,因此决定尝试应用该技术以验证其效果。
简介
通过引入JIT即时编译器,PyTorch实现了模型的序列化与优化功能,但这一过程需要投入额外的开发资源以提升模型执行效率。TorchScript可被视作Python语言的一个简化版本,仅兼容有限的操作指令与数据格式。常规的列表、字典等数据结构在此环境下无法直接应用,而多数可用的数据类型则源自typing模块(如typing.List、typing.Dict),具体细节可参考下图所示内容。

字典结构中规定键的类型只能为字符串、整数或浮点数,而对值的类型没有限制。然而在实际项目应用中,我所使用的字典其值为深度学习模型,却无法正常运行,具体原因尚不清楚。
在TorchScript框架下,默认情况下所有函数参数均被认定为张量类型。因此,TorchScript对变量类型的约束较为严格。部分深度学习模型已具备完整的TorchScript实现版本,例如BERT模型,在调用时只需添加torchscript参数即
全部评论 (0)
还没有任何评论哟~
