有了这个工具不执行代码就可以找PyTorch模型错误.docx
《有了这个工具不执行代码就可以找PyTorch模型错误.docx》由会员分享,可在线阅读,更多相关《有了这个工具不执行代码就可以找PyTorch模型错误.docx(8页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、有了这个工具,不执行代码就可以找PyTorch模型错误|陈萍、泽南来源|机器之心几秒钟扫完代码比训练一遍再找快多了。张量形状不匹配是深度神经网络机器学习经过中会出现的重要错误之一。由于神经网络训练本钱较高且耗时在执行代码之前运行静态分析要比执行然后发现错误快上很多。由于静态分析是在不运行代码的前提下进展的因此可以帮助软件开发人员、质量保证人员查找代码中存在的构造性错误、平安破绽等问题进而保证软件的整体质量。相比于程序动态分析静态分析具有不实际执行程序执行速度快、效率高等特点而广受研究者青睐目前已有许多分析工具可供研究使用如斯坦福大学开发的Meta-CompilationCoverity、利物浦
2、大学开发的LDRATestbed等。近日来自韩国首尔大学的研究者们提出了另一种静态分析器PyTea它可以自动检测PyTorch工程中的张量形状错误。在对包括PyTorch存储库中的工程和StackOverflow中存在的张量错误代码进展测试。结果说明PyTea可以成功的检测到这些代码中的张量形状错误几秒钟就能完成。论文地址s:/arxiv.org/pdf/2112.09037.pdf工程地址s:/github/ropas/pytea几秒就能查找张量形状错误的PyTeaPyTea工具可以静态地扫描PyTorch程序并检测可能的形状错误。PyTea通过额外的数据处理以及一些库例如Torchvisi
3、on、NumPy、PIL的混合使用来分析真实世界Python/PyTorch应用程序的完好训练以及评估途径。PyTea的工作原理是这样的给定输入的PyTorch源PyTea静态跟踪每个可能的执行途径采集途径张量操作序列所需的张量形状约束并决定约束知足与否因此可能发生形状错误。详细来讲如下列图所示PyTea首先将原始Python代码翻译成一种内核语言即PyTea内部表示PyTeaIR。然后它跟踪转换后的IR的每个可能执行途径并采集有关张量形状的约束这些约束规定了代码在没有形状错误的情况下运行的条件。PyTea将采集到的约束集提供应SMTSatisfiabilityModuloTheories求解
4、器Z3以判断这些约束对于每个可能的输入形状都是可知足的。根据求解器的结果PyTea会得出结论哪条途径包含形状错误。假如Z3的约束求解花费过多时间PyTea会停顿并发出dontknow提示。PyTea的整体构造。PyTea由两个分析器组成在线分析器node.js(TypeScript/JavaScript)离线分析器Z3/Python。在线分析器查找基于数值范围的形状不匹配以及API参数的滥用。假如PyTea在分析代码时发现任何错误它将停在该位置并将错误以及违背约束通知用户离线分析器生成的约束传递给Z3。Z3将求解每个途径的约束集并打印第一个违背的约束假如存在。我们先来看下结果展示在线分析器发现
5、错误离线分析器发现错误为了更好的理解PyTea执行静态分析经过下面我们介绍一下主要的技术细节包括PyTorch程序构造、张量形状错误、PyTeaIR等以便读者更好的理解执行经过。首先是PyTorch程序构造PyTorch、TensorFlow以及Keras等当代机器学习框架需要使用PythonAPI来构建神经网络。使用此类框架训练神经网络大多遵循如下四个阶段的标准程序。在PyTorch中常规神经网络训练代码的构造。训练模型需要先定义网络构造图2为一个简化的图像分类代码取自官方的PyTorchMNIST分类例如在这里上述代码首先定义一系列神经网络层并使它们成为单一的神经网络模块。为了正确组装层前
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 有了 这个 工具 执行 代码 可以 PyTorch 模型 错误
限制150内