gdml和sgdml力场模型的参考实现。

sgdml的Python项目详细描述


对称梯度域机器学习(sgdml)

有关详细信息,请访问:http://sgdml.org/

文档可以在这里找到:http://sgdml.org/doc/

要求:

  • Python2.7/3.7
  • 纽比(>;=1.13.0)
  • scipy
  • Pythorch(可选)

开始

稳定释放

大多数系统都预装了pythonpip的默认包管理器。只需调用:

即可安装sgdml

pip install sgdml

命令行界面和相应的python api现在可以从系统的任何地方使用。

开发版本

(1)克隆存储库

git clone https://github.com/stefanch/sGDML.git

cd sGDML

或用

更新现有的本地副本

git pull origin master

(2)安装

pip install -e .

使用标志--user,我们可以告诉pip将包安装到当前用户的主目录,而不是系统范围。此选项可能要求您相应地更新系统的PATH变量。

…支持GPU

对于gpu支持,需要安装可选的pytorch依赖项。

pip install -e .[torch]

重建第一个力场

下载其中一个示例数据集:

sgdml-get dataset ethanol_dft

训练力场模型:

sgdml all ethanol_dft.npz 200 1000 5000

查询力字段

importnumpyasnpfromsgdml.predictimportGDMLPredictfromsgdml.utilsimportior,_=io.read_xyz('examples/geometries/ethanol.xyz')# 9 atomsprintr.shape# (1,27)model=np.load('models/ethanol.npz')gdml=GDMLPredict(model)e,f=gdml.predict(r)printe.shape# (1,)printf.shape# (1,27)

…支持GPU

在实例化预测器时设置use_torch=True会将所有计算重定向到pytorch。

gdml=GDMLPredict(model,use_torch=True)

注意:Pythorch必须安装有GPU支持,否则将使用CPU。但是,我们建议在不使用pytorch的情况下执行cpu计算以获得最佳性能。

参考文献

  • [1]希米拉,S.,特卡钦科,A.,苏塞达,H.E.,波尔塔夫斯基,I.,舒特,K.T.,米勒,K.-R., 精确节能分子力场的机器学习。 科学进步,3(5),E1603015(2017)
    10.1126/sciadv.1603015

  • [2]Chmiela,S.,Sauceda,H.E.,Müller,K.-R.,和Tkatchenko,A., 使用机器学习力场进行精确的分子动力学模拟。 自然通讯,9(1),3887(2018)
    10.1038/s41467-018-06169-2

  • [3]希米拉,S.,索塞达,H.E.,波尔塔夫斯基,I.,穆勒,K.-R.,&T卡钦科,A., sgdml:使用机器学习构造精确且数据有效的分子力场。 计算机物理通信,240,38-45(2019) 10.1016/j.cpc.2019.02.007

  • [4]苏塞达,H.E.,希米拉,S.,波尔塔夫斯基,I.,穆勒,K.-R.,&T卡钦科,A., 具有梯度域机器学习的分子力场:具有耦合簇力的小分子动力学的构造与应用。 《化学物理杂志》,150114102(2019) 10.1063/1.5078687

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

推荐PyPI第三方库


热门话题
带条纹的java开源CMS?   Java中的模板类   java为我的圣诞树建造底座   算法首次用户输入尝试不起作用(Java)   简单服务器客户端程序中的java EOF和SocketException   java的OpenJPA与OSGi配合使用吗   arraylist中的java排序   Java工具创建的WSDL文件存在WCF序列化问题   java公共布尔removeStudent(int-id)   正则表达式java正则表达式需要字符串验证   JavaSpring任务调度   java表“places”没有名为“smallDesc”的列   java将枚举集转换为整数数组   java将int数组转换为byte数组,反之亦然,最有效的方法是什么?   java错误:找不到适合添加的方法(字符串,类<RouterRequestManagerFragment>)   java JComponent不可见   javasocket编程中线程“awteventque0”java.lang.NullPointerException“异常”错误