化学系统神经网络模型的不确定性量化。
项目描述
解锁NN
一个 Python 包,用于解释和提取基于高斯过程的化学系统神经网络模型中的不确定性。
需求声明
神经网络 (NN) 是基于结构信息的材料属性预测 (MPP) 的强大工具。经过培训,它们提供了密度函数理论 (DFT) 的更便宜的替代方案,因此有望用于材料的高通量筛选。然而,目前大多数用于 MPP 的 NN 实现都缺乏不确定性量词。估计中确定性的知识对于机器学习模型尤为重要,因为预测的可靠性取决于训练数据集中功能相似结构的存在,而这些结构不容易确定。
UnlockNN 包含用于向基于 Keras 的模型添加不确定性量化的实用程序。这是通过用 变分高斯过程(VGP) 替换模型的最后一层来实现的,变分高斯过程是对高斯过程的修改,可提高对更大数据集的可扩展性。需要注意的是,修改后的模型必须经过进一步的训练才能校准不确定性量词;然而,这通常只需要少量的训练迭代。
UnlockNN 还包含用于向MEGNet添加不确定性量化的特定配置:用于预测分子和晶体特性的强大图 NN 模型。
安装
可以通过克隆此存储库并使用 anaconda 或 pip 构建它来安装该软件包,也可以直接从 PyPi 下载它。
要从 PyPi 安装,请运行pip install unlockNN. 从源安装:
git clone https://github.com/a-ws-m/unlockNN.git
cd unlockNN
conda env create -f environment.yml # Optional: create a virtual environment with conda
pip install .
dev_environment.yml包含用于开发、测试和构建文档的附加依赖项。它可以使用conda env create -f dev_environment.yml.
文档
此处提供该项目的完整文档。
基准
基准测试详细信息和结果可以在基准测试子目录中找到。
许可和归属
根据 MIT 许可证许可的代码。
开发笔记
报告问题
请使用问题跟踪器报告软件中的错误、建议功能改进或寻求支持。
为解锁NN做贡献
由于我们希望使 unlockNN 更加灵活和高效,因此非常欢迎您做出贡献。请使用Fork and Pull工作流程进行贡献并遵循贡献指南:
- 使用中定义的环境
dev_environment.yml。这将安装black,用于该项目的格式化程序,以及用于构建文档(sphinx和insegel主题)、启用测试套件(pytest和pytest-cov)和发布到 PyPi(build,但这将由包维护者处理)的实用程序。 - 用于
black格式化您编辑的所有 Python 文件:black {edited_file.py}或python -m black {edited_file.py}. - 在适当的目录中为新功能编写测试。
pytest tests/使用或可选的 with运行测试pytest --cov=unlocknn tests/以动态生成覆盖率。 - 在测试
pytest适用于您当前环境的情况后,tox在项目的根目录中运行以检查所有 Python 版本是否兼容。 - 使用Google 风格的 Docstrings。
pydocstyle使用:检查文档字符串pydocstyle {edited_file.py}。 - 检查文档字符串是有效的 Sphinx RST 并且文档编译没有错误:在
docs目录中,运行make html. - 随时清理其他人的代码。
开发商名单
解锁NN的贡献者:
非常感谢Keith Butler、Aron Walsh和Kazuki Morita在项目启动时对项目的监督以及他们的大力支持。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。