有了这个工具不执行代码就可以找PyTorch模型错误.docx

上传人:安*** 文档编号:71086480 上传时间:2023-02-01 格式:DOCX 页数:8 大小:19.04KB
返回 下载 相关 举报
有了这个工具不执行代码就可以找PyTorch模型错误.docx_第1页
第1页 / 共8页
有了这个工具不执行代码就可以找PyTorch模型错误.docx_第2页
第2页 / 共8页
点击查看更多>>
资源描述

《有了这个工具不执行代码就可以找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分类例如在这里上述代码首先定义一系列神经网络层并使它们成为单一的神经网络模块。为了正确组装层前

6、一层的返回张量必须知足下一层的输入要求。网络使用超参数的初始化参数进展实例化例如隐藏层的数量。接下来对输入数据集进展预处理并根据网络的要求进展调整。从该阶段开场每个数据集都被切成较小的一样大小的块minibatch。最后主循环开场minibatch按顺序输入网络。一个epoch是指将整个数据集传递到网络的单个循环并且epoch的数量通常取决于神经网络的目的以及构造。除了取决于数据集大小的主训练循环之外包括epoch数在内训练代码中的迭代次数在大多数情况下被确定为常数。在构建模型时网络层之间输入、输出张量形状的不对应就是张量形状错误。通常形状错误很难手动查找只能通过使用实际输入运行程序来检测。下

7、列图就是典型的张量形状错误对图2的简单修改假如不仔细查看你根本发现不了错误对于张量形状错误如上图的错误类型PyTea将原始Python代码翻译成PyTeaIR进展查找如下列图是PyTeaIR例如上面提到PyTea会跟踪转换后的IR的每个可能执行途径并采集有关张量形状约束。其实约束是PyTorch应用程序所需要的条件以便在没有任何张量形状误差的情况下执行它。例如一个矩阵乘法运算的两个操作数必须分享一样的维数。下列图显示了约束的抽象语法约束的抽象语法局部截图怎样使用PyTea首先安装环境要求node.js12.xpython3.8z3-solver4.8。安装以及使用可参考以下代码#install

8、node.jssudoapt-getinstallnodejs#installpythonz3-solverpipinstallz3-solver#downloadpyteawgets:/github/ropas/pytea/releases/download/v0.1.0/pytea.zipunzippytea.zip#runpyteapythonbin/pytea.pypath/to/source.py#runexamplefilepythonbin/pytea.pypackages/pytea/pytest/basics/scratch.py编译代码#installdependencie

9、snpmruninstall:allpipinstallz3-solver#buildnpmrunbuild网友纷纷表示这个工具绝对是必要的十分鸣谢感谢TCCI天桥脑科学研究院对于PaperWeekly的支持。TCCI关注大脑探知、大脑功能以及大脑安康。更多浏览#投稿通道#让你的文字被更多人看到怎样才能让更多的优质内容以更短途径到达读者群体缩短读者寻找优质内容的本钱呢答案就是你不认识的人。总有一些你不认识的人知道你想知道的东西。PaperWeekly或者答应以成为一座桥梁促使不同背景、不同方向的学者以及学术灵感互相碰撞迸发出更多的可能性。PaperWeekly鼓励高校实验室或者个人在我们的平台

10、上共享各类优质内容可以是最新论文解读可以以是学术热点剖析、科研心得或者竞赛经历讲解等。我们的目的只有一个让知识真正流动起来。稿件根本要求文章确系个人原创作品未曾在公开渠道发表如为其他平台已发表或者待发表的文章请明确标注稿件建议以markdown格式撰写文中配图以附件形式发送要求图片明晰无版权问题PaperWeekly尊重原署名权并将为每篇被采纳的原创首发稿件提供业内具有竞争力稿酬详细根据文章浏览量以及文章质量阶梯制结算投稿通道投稿邮箱hrpaperweekly.site来稿请备注即时联络方式微信以便我们在稿件选用的第一时间联络您可以以直接添加小编微信pwbot02快速投稿备注姓名-投稿长按添加PaperWeekly小编如今在知乎也能找到我们了进入知乎首页搜索PaperWeekly点击关注订阅我们的专栏吧

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 工程图纸

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com