SISSO

github页面:
https://github.com/rouyang2017/SISSO

在这个github项目下包含模块:

  • var_global.f90 ! 声明全局变量
  • libsisso.f90 ! 数学运算的子程序和函数
  • DI.f90!模型稀疏化(描述符识别)
  • FC.f90!使用存储在内存中的数值数据特征进行特征构建
  • FCse.f90!使用存储在内存中的表达式树特征进行特征构建
  • SISSO.f90!主程序

安装

git clone https://github.com/rouyang2017/SISSO.git

cd SISSO

---编译 SISSO 并行程序需要 Fortran MPI 编译器。推荐使用 Intel 编译器。

确定编译器与 MPI wrapper 是否可用:

which ifx

which mpiifx || true

which mpiifort || true

which mpifort || true

在"src"文件夹中,执行以下操作:

mkdir ~/bin/

  • mpiifx -fp-model precise var_global.f90 libsisso.f90 DI.f90 FC.f90 FCse.f90 SISSO.f90 -o ~/bin/SISSO

或者

  • mpiifx -O2 var_global.f90 libsisso.f90 DI.f90 FC.f90 FCse.f90 SISSO.f90 -o ~/bin/SISSO

区别是:

第一个命令安装的能够提高浮点计算的 准确性 和运行间 可重复性

第二个命令安装的 快约 2 倍

(可选,保持环境整洁)然后

sudo mkdir /opt/SISSO

sudo mv ~/bin /opt/SISSO

加入环境变量:

nano ~/.bashrc

在文件中添加行:

#SISSO

export PATH=/opt/SISSO/bin/:$PATH

然后

source ~/.bashrc

which SISSO

解除内存限制

ulimit -s unlimited

计算模板

计算模板位于克隆的SISSO项目目录下:

input_templates

包含

--SISSO.in(输入文件)

--train.dat_regression(回归示例数据)

--train.dat_regression_multitask(多任务回归示例数据)

--train.dat_classification(分类示例数据)

--train.dat_classification_multitask(多任务分类示例数据)

计算测试

回归计算测试

在系统其他位置建立一个测试文件夹,然后拷贝 输入文件 和 训练数据

cp /media/waler/4TB/installer/SISSO/SISSO/input_templates/SISSO.in .

cp /media/waler/4TB/installer/SISSO/SISSO/input_templates/train.dat_regression ./train.dat

串行运行SISSO

SISSO |tee out

并行运行SISSO

mpirun -np 4 SISSO |tee out

运算流程:
  1. FC(Feature Construction) :从初始特征空间 Phi00 生成更高阶组合特征 Phi01、Phi02
  2. SIS(Sure Independence Screening) :筛选子空间(你这里从 Phi02 选出 141 个进入子空间)
  3. SIS(Sure Independence Screening) :筛选子空间(你这里从 Phi02 选出 141 个进入子空间)

计算完成后生成如下文件:
Models/(模型结果文件)
SIS_subspaces/(SIS 选出的子空间)
SISSO.out(主输出汇总)

SISSO.out

可以从输出文件 SISSO.out 看总体结果与最优模型:

grep -n -E "Best|best|descriptor|RMSE|MAE|MaxAE|coeff" SISSO.out | head -n 50

我们接下来解释一下这些信息:

28:Metric for model selection: RMSE

53: 2D descriptor/model(y=sum(ci*di)+c0) :

58: coeff.(ci): 0.3119522717E+01 -0.2615952335E-03

60: RMSE and MaxAE: 0.6898298038E-03 0.9482663871E-03

第一行说明,SISSO 是用 RMSE(均方根误差) 作为模型优劣的判据

第二行说明,找到的最优模型是一个 2 维描述符, 模型形式是线性回归模型。

第三行就是两个拟合系数。对目标性质的贡献**主导;**是一个较弱但必要的修正项

第四行给出了 RMSE 和 MaxAE 判断误差大小,数字越小说明拟合效果越好

Models文件夹

这个文件夹下包含了训练产生的模型的文件

例如 data_top1 表示排名第 1 的模型的数据

使用

报错

1:funit报错

(base) waler@7B12:/media/waler/4TB/Calculation/ML/SISSO/test$ SISSO | tee out.log

Error: Cannot read the parameter "funit"

Error while reading the parameter "funit" from SISSO.in

在 SISSO v3.5 遇到过同样现象:只要把 funit=(1:2)(3:3) 注释掉就能跑,但一旦保留就报 "Cannot read the parameter funit"。

原因:

发现是由于 编译时,使用了 mpiifx 替换了 mpiifort 引起的 。

但是ifort功能在最新版本intel中被移除,这意味着ifx必须使用。

解决方法:

在SISSO/src路径下,找到SISSO.f90

修改

do ll=1,nunit

为

do ll=1,nunit-1

然后重新编译即可。

mkdir ~/bin/

mpiifx -fp-model precise var_global.f90 libsisso.f90 DI.f90 FC.f90 FCse.f90 SISSO.f90 -o ~/bin/SISSO

sudo rm -r /opt/SISSO/bin

sudo mv ~/bin /opt/SISSO

source ~/.bashrc

which SISSO

相关推荐
IT大白鼠4 分钟前
彭大帅的AI运维助手——自然语言管理 Linux 集群与网络设备——第 5 篇 · 多模态与虚拟化AI 能「看」图:多模态与虚拟化管理
linux·运维·人工智能
IT大白鼠29 分钟前
彭大帅的AI运维助手——自然语言管理 Linux 集群与网络设备——第 2 篇 · 安全守规矩的 AI:分级安全管控是灵魂
linux·运维·人工智能
风华同学34 分钟前
免密SSH登录Ubuntu
linux·运维·ubuntu
꯭自꯭闭꯭34 分钟前
达梦守护集群手工切换及故障切换
linux·运维·服务器·数据库
cuijiecheng20181 小时前
RK3588 DEP 接入 Dante Domain Manager(DDM)完整测试记录
linux
爱吃香菜的初学者1 小时前
十二.Linux——管道
linux·运维·服务器
网硕互联的小客服9 小时前
Linux服务器磁盘应该如何合理分区?
linux·运维·服务器
贵沫末10 小时前
Ubuntu——常用软件安装
linux·运维·ubuntu
Doraemomo11 小时前
Linux内核驱动开发——中断与定时器
linux·运维·驱动开发
2301_8084143811 小时前
Linux中动静态库的理解
linux·运维·服务器