PyTorch上神经网络推理的可微抽象域实现

diffabs的Python项目详细描述


迪法布

DiffAbs是多个抽象域的PyTorch实现 可用于证明或推理神经网络。实施 纯粹使用PyTorch,它是可微的,并且支持GPU 违约,因此可接受安全/稳健性驱动的培训 抽象域。在

目前,实现了以下抽象域:

域注释

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条款下是开放源码的。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在Hibernate中从两个具有不同功能的表(postgreSQL)映射一个实体   java jfreechart需要自定义Y轴,以便打印   Java:从外部获取类。罐子   java如何获取Appium服务器日志   具有完全相同内容的java重写函数会导致错误   java消息的类路径是什么。属性(如果在依赖项jar中)   循环/相等的java问题==   java如何使用ionic cordova angularjs将所选图像发送到spring controller以保存到服务器?   库中的java语言环境数据   java从JSON webservice检索安卓中的字节[]   调试如何从Java中的类调试方法?   java将日期字符串切割成变量   无法使用java附加到文件?