计算化学和凝聚态物理的机器学习工具

cmlkit的Python项目详细描述


cmlkit

“骆驼工具包”

_______________

PyPI - Python VersionPyPICode style: black

cmlkit为计算化学和凝聚态物理的机器学习模型,特别是原子论预测的机器学习模型的指定、调整和评估提供了一种简洁明了的方法。

警告:

  • cmlkit依赖于^{},这是尚未公开的。
  • 这是一个“科学准则”,即发展很少发生,而且有点偶然。我会尽量不做太多突破性的改变,永远不要在小版本。
  • 这是一个非常特定于领域的项目,所以它有点充满了行话。但是,tuneengine子模块非常通用!

如果你在任何科学工作中使用此代码,请在出版物中提及并告知我。谢谢!

什么是cmlkit?_;

在其核心,cmlkit定义了一个统一的基于dict的格式来指定模型组件,这些组件可以直接读写为yaml。它使用这种格式为其域中流行方法的实现提供接口。模型组件被实现为纯粹的ish函数,这在概念上是令人满意的,并为轻松的管道和缓存打开了大门。

在此基础上,它实现了并行超参数优化(使用hyperopt作为后端),并提供工具来训练模型、进行预测和评估这些预测。它的目的是扩展性和灵活性足以满足研究的需要。它还具有“高性能计算兼容性”,即它可以直接在90年代的计算环境中运行。

出于必要性,它还实现了另一种数据集格式,但通过提供自动加载来弥补这一点,这是很好的。

兼容性

目前,有以下接口:

表示:

  • 多体张量表示(mbtr)(hou,rupp,arxiv 1704.06439(2017))(qmmlpack接口)
  • 原子位置的平滑重叠(soap)表示(bartok,kondor,csanyi,prb 87 184115(2013))(quippy接口)
  • 对称函数(SF)表示(Behler,JCP 134074106(2011))(^{}接口)

回归方法:

  • ^{}
  • 中实现的内核岭回归(krr)

功能

  • 相当干净、可组合、现代的代码库,几乎没有魔力

超参数优化(cmlkit.tune)自夸:

  • 强大的多核支持(即它可以自动终止超时的外部代码,即使它忽略了SIGTERM
  • 不需要mongodb(对于某些计算环境courk很重要courk
  • 扩展到hyperopt空间(log网格)
  • 实现多步骤优化的可能性(目前处于试验阶段)
  • 可恢复/可恢复运行由可读的、原子式编写的优化历史(由^{}支持)
  • 搜索空间可以完全用文本定义,即它们易于编写、携带和序列化

在路线图上,即将推出™:

  • 彻底缓存计算(一切都准备好了!)
  • 插件系统(目前,自定义对象需要手动注册)

常见问题

(实际上并不经常问这些问题。)

我不从事计算化学/凝聚态物理。我应该在乎吗?

很遗憾,简短的回答可能是否定的。

不过,我认为这个图书馆的建筑相当整洁,所以也许它可以提供一些稍微有趣的阅读。tune组件非常通用,在我看来,它为hyperopt提供了一个非常干净的接口。engine也相当通用,提供了一种序列化specify的好方法。ic类型的python对象到yaml

我为什么要用这个?

如果您需要使用上面提到的任何库,可能会更方便。如果您需要进行超参数优化,并且厌倦了简单的hyperopt,那么它可能很有用。

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

推荐PyPI第三方库


热门话题
javajexcel包装文本问题   EclipseJavaEnum缩进超过左括号。如何让它看起来更正常?   java有办法包含Tomcat 6 catalina。out和localhost。在网络应用的日志文件中记录内容?   java如何永久性地阻止JavaFX代码在eclipse中被突出显示为错误?   如何在java中优化两个for循环(for循环中的for循环)   java如何在我的windows机器上从jar文件创建mac osx的可执行文件   使用记忆化/动态规划的Java组合学   Java中的游荡对象垃圾收集   java为什么我在JSP和JDBC和MySQL中遇到连接失败错误   java轮询Pod的就绪状态   如何创建电子邮件并将其发送到Java中的特定地址?   java如何修复Dagger 2错误“。。。无法提供[…]”?   java Android单选按钮看起来太轻   Android Studio:开发在应用程序之间共享的通用java库