错误|有了这个工具,不执行代码就可以找PyTorch模型错误( 三 )


错误|有了这个工具,不执行代码就可以找PyTorch模型错误
文章图片

对于张量形状错误(如上图的错误类型) , PyTea 将原始 Python 代码翻译成 PyTea IR 进行查找 , 如下图是 PyTea IR 示例:
错误|有了这个工具,不执行代码就可以找PyTorch模型错误
文章图片

上面提到 , PyTea 会跟踪转换后的 IR 的每个可能执行路径 , 并收集有关张量形状约束 。 其实约束是 PyTorch 应用程序所需要的条件 , 以便在没有任何张量形状误差的情况下执行它 。 例如 , 一个矩阵乘法运算的两个操作数必须共享相同的维数 。 下图显示了约束的抽象语法:
错误|有了这个工具,不执行代码就可以找PyTorch模型错误
文章图片

约束的抽象语法部分截图
如何使用 PyTea
首先 , 安装环境要求:node.js >= 12.x , python >= 3.8 , z3-solver >= 4.8 。
安装和使用可参考以下代码:
# install node.js
sudo apt-get install nodejs
# install python z3-solver
pip install z3-solver
# download pytea
wget https://github.com/ropas/pytea/releases/download/v0.1.0/pytea.zip
unzip pytea.zip
# run pytea
python bin/pytea.py path/to/source.py
# run example file
python bin/pytea.py packages/pytea/pytest/basics/scratch.py
编译代码:
# install dependencies
npm run install:all
pip install z3-solver
# build
npm run build
网友纷纷表示:这个工具绝对是必要的!

推荐阅读