NNSmith 开源项目教程
1、项目介绍
NNSmith 是一个用于生成多样化和有效测试用例的深度学习编译器随机生成器和模糊测试基础设施。它主要设计用于自动验证深度学习框架和编译器。NNSmith 支持多种深度学习框架和编译器,包括 TensorFlow、PyTorch、ONNX、TVM 等。
2、项目快速启动
安装最新代码(GitHub HEAD)
pip install pip --upgrade
pip install "nnsmith[torch,onnx] @ git+https://github.com/ise-uiuc/nnsmith@main" --upgrade
安装最新稳定版本
pip install "nnsmith[torch,onnx]" --upgrade
安装最新预发布版本
pip install "nnsmith[torch,onnx]" --upgrade --pre
设置 Graphviz 用于调试
sudo apt-get install graphviz graphviz-dev # Linux
brew install graphviz # MacOS
conda install --channel conda-forge pygraphviz # Conda
3、应用案例和最佳实践
生成随机模型
使用以下命令生成一个随机模型,并将其保存到 nnsmith_outputs/*
目录中:
nnsmith model_gen model type=onnx debug viz=true
学习更多
- Uncovered bugs: 通过 NNSmith 生成的测试用例,可以发现深度学习框架和编译器中的潜在错误。
- Documentation: 详细了解 NNSmith 的 CLI、概念、日志记录和已知问题。
- Contributing: 使用 Hydra 管理配置,查看
nnsmith/config/main.yaml
。
4、典型生态项目
- TensorFlow: 支持生成和验证 TensorFlow 模型。
- PyTorch: 支持生成和验证 PyTorch 模型,并支持梯度检查。
- ONNX: 支持生成和验证 ONNX 模型。
- TVM: 支持生成和验证 TVM 模型。
- ONNX Runtime: 支持生成和验证 ONNX Runtime 模型。
通过 NNSmith,开发者可以自动化生成多样化的深度学习模型测试用例,从而提高深度学习框架和编译器的稳定性和可靠性。