PyTorch上神经网络推理的可微抽象域实现
diffabs的Python项目详细描述
迪法布
DiffAbs是多个抽象域的PyTorch实现 可用于证明或推理神经网络。实施 纯粹使用PyTorch,它是可微的,并且支持GPU 违约,因此可接受安全/稳健性驱动的培训 抽象域。在
目前,实现了以下抽象域:
- 香荚兰区间域
- 深水域(https://dl.acm.org/doi/10.1145/3290354)
域注释
DeepPoly ReLU启发式:
- 原始DeepPoly域的一个变体被实现,其中
ReLU近似不是在两个选择之间进行试探性的选择
(选择
y = x
或{}作为新的上限)。赖特 现在它被固定到选择 y = 0
,因为有伽罗瓦 如果这个启发式方法是 启用。基本上,在实验中观察到 抽象可能会意外地产生比其更大的安全距离 包含更大的抽象。在
支持的系统
虽然它目前已经在macosx10.15和ubuntu16.04上测试过 在Python3.7和Pythorch 1.5中,它应该推广到其他 平台和旧版Pythorch(可能≥v1.0)流畅。在
但是,Python≤3.6可能不兼容。因为类型注释
在任何地方指定,self类的类型注释仅
Python3.7中的__future__.annotations
支持。如果使用Python
3.6,这需要改用“type string”。在
安装
在您的虚拟环境中,可以通过以下方式直接从此存储库安装
git clone git@github.com:XuankangLin/DiffAbs.git
cd DiffAbs
pip install -e .
或者直接从PyPI安装:
^{pr2}$测试
单个抽象域的测试用例位于tests/
目录,并且可以使用命令运行
pytest
注意,torchvision
是运行conv/maxpool层的测试所必需的。在
许可证
该项目在MIT License条款下是开放源码的。在
- 项目
标签: