Third-Party Interfaces: installations and usages

MLatom  aslo provides interfaces to some third-party software. 

To use third-party software, MLprog should be set to a third-party software.

Currently implemented programs and the default choises when MLmodelType and MLprog is defined:

  Supported ML model types and default programs:
 
  +-------------+----------------+ 
  | MLmodelType | default MLprog | 
  +-------------+----------------+ 
  | KREG        | MLatomF        | 
  +-------------+----------------+ 
  | sGDML       | sGDML          | 
  +-------------+----------- ----+ 
  | GAP-SOAP    | GAP            | 
  +-------------+----------------+ 
  | PhysNet     | PhysNet        | 
  +-------------+----------------+ 
  | DeepPot-SE  | DeePMD-kit     | 
  +-------------+----------------+ 
  | ANI         | TorchANI       | 
  +-------------+----------------+ 
 
 Supported interfaces with default and tested ML model types:
 
  +------------+----------------------+
  | MLprog     | MLmodelType          |
  +------------+----------------------+
  | MLatomF    | KREG [default]       |
  |            | see                  |
  |            | MLatom.py KRR help   |
  +------------+----------------------+
  | sGDML      | sGDML [default]      |
  |            | GDML                 |
  +------------+----------------------+
  | GAP        | GAP-SOAP             |
  +------------+----------------------+
  | PhysNet    | PhysNet              |
  +------------+----------------------+
  | DeePMD-kit | DeepPot-SE [default] |
  |            | DPMD                 |
  +------------+----------------------+
  | TorchANI   | ANI [default]        |
  +------------+----------------------+

DeePMD-kit

usage

Set MLprog=DeePMD-kitto enable the interface.

options

Expressions like deepmd.xxx.xxx=X specify arguments for DeePMD, follows the structure of DeePMD’s json input file.

For example:   

deepmd.training.stop_batch=N is an equivalent of

  {                    
    ...                
    "training": {      
      ...              
      "stop_batch": N  
      ...              
    }                  
    ...                
  }                     in DeePMD-kit’s json input.
 

In addition, option deepmd.input=S intakes a input json file S as a template. Final input file will be generated base on it with deepmd.xxx.xxx=X options (if any). Check default template file bin/interfaces/DeePMDkit/template.json for defualt values

GAP and QUIP

usage

Set MLprog=GAP to enable the interface.

options

gapfit.xxx=x xxx could be any option for gap_fit (e.g. default_sigma).
Note that there’s no need to set at_file and gp_file.
gapfit.gap.xxx=x xxx could be any option for gap.

Arguments with their default values:
 
gapfit.default_sigma={0.0005,0.001,0,0} hyperparameter sigmas for energies, forces, virals and hessians
gapfit.e0_method=average method for determining e0  
gapfit.gap.type=soap descriptor type
gapfit.gap.l_max=6 max number of angular basis functions  
gapfit.gap.n_max=6 max number of radial basis functions   
gapfit.gap.atom_sigma=0.5 hyperparameter for Gaussain smearing of atom density
gapfit.gap.zeta=4 hyperparameter for kernel sensitivity  
gapfit.gap.cutoff=6.0 cutoff radius of local environment     
gapfit.gap.cutoff_transition_width=0.5 cutoff transition width              
gapfit.gap.delta=1 hyperparameter delta for kernel scaling

TorchANI

usage

Set MLprog=TorchANIto enable the interface.

options

Arguments with their default values:

ani.batch_size=8 batch size                           
ani.max_epochs=10000000 max epochs                           
ani.early_stopping_learning_rate=0.00001 learning rate that triggers early-stopping                      
ani.force_coefficient=0.1                   weight for force                     
ani.Rcr=5.2                                 radial cutoff radius                 
ani.Rca=3.5                                 angular cutoff radius                
ani.EtaR=1.6                                radial smoothness in radial part     
ani.ShfR=0.9,1.16875,1.4375,1.70625,1.975,2.24375,2.5125,2.78125,3.05,3.31875,3.5875,3.85625,4.125,4.9375,4.6625,4.93125 radial shifts in radial part         
ani.Zeta=32 angular smoothness                   
ani.ShfZ=0.19634954,0.58904862,0.9817477,1.3744468,                             
1.7671459,2.1598449,2.552544,2.9452431 angular shifts                       
ani.EtaA=8 radial smoothness in angular part    
ani.ShfA=0.9,1.55,2.2,2.85 radial shifts in angular part        
ani.Neuron_l1=160 number of neurons in layer 1         
ani.Neuron_l2=128 number of neurons in layer 2         
ani.Neuron_l3=96 number of neurons in layer 3         
ani.AF1='CELU' acitivation function for layer 1     
ani.AF2='CELU' acitivation function for layer 2     
ani.AF3='CELU' acitivation function for layer 3     

PhysNet

usage

Set MLprog=PhysNet to enable the interface.

options

Arguments with their default values:

physnet.num_features=128 number of input features             
physnet.num_basis=64 number of radial basis functions     
physnet.num_blocks=5 number of stacked modular building blocks                     
physnet.num_residual_atomic=2 number of residual blocks for atom-wise refinements 
physnet.num_residual_interaction=3 number of residual blocks for refinements of proto-message        
physnet.num_residual_output=1 number of residual blocks in output blocks                       
physnet.cutoff=10.0 cutoff radius for interactions in the neural network 
physnet.seed=42 random seed
physnet.learning_rate=0.0008 starting learning rate               
physnet.decay_steps=10000000 decay steps                          
physnet.decay_rate=0.1 decay rate for learning rate         
physnet.batch_size=12 training batch size                  
physnet.valid_batch_size=2 validation batch size                
physnet.force_weight=52.91772105638412 weight for force                   
physnet.summary_interval=5 interval for summary                 
physnet.validation_interval=5 interval for validation              
physnet.save_interval=10 interval for model saving            

sGDML

usage

Set MLprog=sGDMLto enable the interface.

options

Arguments with their default values:

sgdml.gdml=False use GDML instead of sGDML                     
sgdml.cprsn=False compress kernel matrix along symmetric degrees of freedom
sgdml.no_E=False not to predict energies 
sgdml.E_cstr=False include the energy constraints in the kernel  
sgdml.s=<s1>[,<s2>[,...]] or <start>:[<step>:]<stop> set hyperparameter sigma, see sgdml create -h for details.