9. Command line interface#
DeePMD-kit: A deep learning package for many-body potential energy representation and molecular dynamics
usage: dp [-h]
[-b {jax,tensorflow,tf,pytorch,pt} | --jax | --tensorflow | --pytorch]
[--version]
{transfer,train,freeze,test,compress,doc-train-input,model-devi,convert-from,neighbor-stat,change-bias,train-nvnmd,gui,convert-backend,show}
...
9.1. Named Arguments#
- -b, --backend
Possible choices: jax, tensorflow, tf, pytorch, pt
The backend of the model. Default can be set by environment variable DP_BACKEND.
Default: “tensorflow”
- --jax
Alias for –backend jax
- --tensorflow, --tf
Alias for –backend tensorflow
- --pytorch, --pt
Alias for –backend pytorch
- --version
show program’s version number and exit
9.2. Valid subcommands#
- command
Possible choices: transfer, train, freeze, test, compress, doc-train-input, model-devi, convert-from, neighbor-stat, change-bias, train-nvnmd, gui, convert-backend, show
9.3. Sub-commands#
9.3.1. transfer#
(Supported backend: TensorFlow) pass parameters to another model
dp transfer [-h] [-v {DEBUG,3,INFO,2,WARNING,1,ERROR,0}] [-l LOG_PATH]
[-r RAW_MODEL] [-O OLD_MODEL] [-o OUTPUT]
9.3.1.1. Named Arguments#
- -v, --log-level
Possible choices: DEBUG, 3, INFO, 2, WARNING, 1, ERROR, 0
set verbosity level by string or number, 0=ERROR, 1=WARNING, 2=INFO and 3=DEBUG
Default: “INFO”
- -l, --log-path
set log file to log messages to disk, if not specified, the logs will only be output to console
- -r, --raw-model
the model receiving parameters
Default: “raw_frozen_model.pb”
- -O, --old-model
the model providing parameters
Default: “old_frozen_model.pb”
- -o, --output
the model after passing parameters
Default: “frozen_model.pb”
9.3.2. train#
train a model
dp train [-h] [-v {DEBUG,3,INFO,2,WARNING,1,ERROR,0}] [-l LOG_PATH]
[-m {master,collect,workers}]
[-i INIT_MODEL | -r RESTART | -f INIT_FRZ_MODEL | -t FINETUNE]
[--use-pretrain-script] [-o OUTPUT] [--skip-neighbor-stat]
[--model-branch MODEL_BRANCH] [--force-load]
INPUT
9.3.2.1. Positional Arguments#
- INPUT
the input parameter file in json or yaml format
9.3.2.2. Named Arguments#
- -v, --log-level
Possible choices: DEBUG, 3, INFO, 2, WARNING, 1, ERROR, 0
set verbosity level by string or number, 0=ERROR, 1=WARNING, 2=INFO and 3=DEBUG
Default: “INFO”
- -l, --log-path
set log file to log messages to disk, if not specified, the logs will only be output to console
- -m, --mpi-log
Possible choices: master, collect, workers
Set the manner of logging when running with MPI. ‘master’ logs only on main process, ‘collect’ broadcasts logs from workers to master and ‘workers’ means each process will output its own log
Default: “master”
- -i, --init-model
Initialize the model by the provided path prefix of checkpoint files.
- -r, --restart
Restart the training from the provided path prefix of checkpoint files.
- -f, --init-frz-model
Initialize the training from the frozen model.
- -t, --finetune
Finetune the frozen pretrained model.
- --use-pretrain-script
When performing fine-tuning or init-model, utilize the model parameters provided by the script of the pretrained model rather than relying on user input. It is important to note that in TensorFlow, this behavior is the default and cannot be modified for fine-tuning.
Default: False
- -o, --output
The output file of the parameters used in training.
Default: “out.json”
- --skip-neighbor-stat
Skip calculating neighbor statistics. Sel checking, automatic sel, and model compression will be disabled.
Default: False
- --model-branch
(Supported backend: PyTorch) Model branch chosen for fine-tuning if multi-task. If not specified, it will re-init the fitting net.
Default: “”
- --force-load
(Supported backend: PyTorch) Force load from ckpt, other missing tensors will init from scratch
Default: False
- examples:
dp train input.json dp train input.json –restart model.ckpt dp train input.json –init-model model.ckpt
9.3.3. freeze#
freeze the model
dp freeze [-h] [-v {DEBUG,3,INFO,2,WARNING,1,ERROR,0}] [-l LOG_PATH]
[-c CHECKPOINT_FOLDER] [-o OUTPUT] [-n NODE_NAMES] [-w NVNMD_WEIGHT]
[--head HEAD]
9.3.3.1. Named Arguments#
- -v, --log-level
Possible choices: DEBUG, 3, INFO, 2, WARNING, 1, ERROR, 0
set verbosity level by string or number, 0=ERROR, 1=WARNING, 2=INFO and 3=DEBUG
Default: “INFO”
- -l, --log-path
set log file to log messages to disk, if not specified, the logs will only be output to console
- -c, --checkpoint-folder, --checkpoint
Path to checkpoint, either a folder containing checkpoint or the checkpoint prefix
Default: “.”
- -o, --output
Filename (prefix) of the output model file. TensorFlow backend: suffix is .pb; PyTorch backend: suffix is .pth
Default: “frozen_model”
- -n, --node-names
(Supported backend: TensorFlow) the frozen nodes, if not set, determined from the model type
- -w, --nvnmd-weight
(Supported backend: TensorFlow) the name of weight file (.npy), if set, save the model’s weight into the file
- --head
(Supported backend: PyTorch) Task head to freeze if in multi-task mode.
- examples:
dp freeze dp freeze -o graph.pb
9.3.4. test#
test the model
dp test [-h] [-v {DEBUG,3,INFO,2,WARNING,1,ERROR,0}] [-l LOG_PATH] [-m MODEL]
[-s SYSTEM | -f DATAFILE] [-S SET_PREFIX] [-n NUMB_TEST]
[-r RAND_SEED] [--shuffle-test] [-d DETAIL_FILE] [-a] [--head HEAD]
9.3.4.1. Named Arguments#
- -v, --log-level
Possible choices: DEBUG, 3, INFO, 2, WARNING, 1, ERROR, 0
set verbosity level by string or number, 0=ERROR, 1=WARNING, 2=INFO and 3=DEBUG
Default: “INFO”
- -l, --log-path
set log file to log messages to disk, if not specified, the logs will only be output to console
- -m, --model
Frozen model file (prefix) to import. TensorFlow backend: suffix is .pb; PyTorch backend: suffix is .pth.
Default: “frozen_model”
- -s, --system
The system dir. Recursively detect systems in this directory
Default: “.”
- -f, --datafile
The path to the datafile, each line of which is a path to one data system.
- -S, --set-prefix
[DEPRECATED] Deprecated argument.
- -n, --numb-test
The number of data for test. 0 means all data.
Default: 0
- -r, --rand-seed
The random seed
- --shuffle-test
Shuffle test data
Default: False
- -d, --detail-file
The prefix to files where details of energy, force and virial accuracy/accuracy per atom will be written
- -a, --atomic
Test the accuracy of atomic label, i.e. energy / tensor (dipole, polar)
Default: False
- --head
(Supported backend: PyTorch) Task head to test if in multi-task mode.
- examples:
dp test -m graph.pb -s /path/to/system -n 30
9.3.5. compress#
Compress a model
dp compress [-h] [-v {DEBUG,3,INFO,2,WARNING,1,ERROR,0}] [-l LOG_PATH]
[-m {master,collect,workers}] [-i INPUT] [-o OUTPUT] [-s STEP]
[-e EXTRAPOLATE] [-f FREQUENCY] [-c CHECKPOINT_FOLDER]
[-t TRAINING_SCRIPT]
9.3.5.1. Named Arguments#
- -v, --log-level
Possible choices: DEBUG, 3, INFO, 2, WARNING, 1, ERROR, 0
set verbosity level by string or number, 0=ERROR, 1=WARNING, 2=INFO and 3=DEBUG
Default: “INFO”
- -l, --log-path
set log file to log messages to disk, if not specified, the logs will only be output to console
- -m, --mpi-log
Possible choices: master, collect, workers
Set the manner of logging when running with MPI. ‘master’ logs only on main process, ‘collect’ broadcasts logs from workers to master and ‘workers’ means each process will output its own log
Default: “master”
- -i, --input
The original frozen model, which will be compressed by the code. Filename (prefix) of the input model file. TensorFlow backend: suffix is .pb; PyTorch backend: suffix is .pth
Default: “frozen_model”
- -o, --output
The compressed model. Filename (prefix) of the output model file. TensorFlow backend: suffix is .pb; PyTorch backend: suffix is .pth
Default: “frozen_model_compressed”
- -s, --step
Model compression uses fifth-order polynomials to interpolate the embedding-net. It introduces two tables with different step size to store the parameters of the polynomials. The first table covers the range of the training data, while the second table is an extrapolation of the training data. The domain of each table is uniformly divided by a given step size. And the step(parameter) denotes the step size of the first table and the second table will use 10 * step as it’s step size to save the memory. Usually the value ranges from 0.1 to 0.001. Smaller step means higher accuracy and bigger model size
Default: 0.01
- -e, --extrapolate
The domain range of the first table is automatically detected by the code: [d_low, d_up]. While the second table ranges from the first table’s upper boundary(d_up) to the extrapolate(parameter) * d_up: [d_up, extrapolate * d_up]
Default: 5
- -f, --frequency
The frequency of tabulation overflow check(Whether the input environment matrix overflow the first or second table range). By default do not check the overflow
Default: -1
- -c, --checkpoint-folder
path to checkpoint folder
Default: “model-compression”
- -t, --training-script
The training script of the input frozen model
- examples:
dp compress dp –tf compress -i frozen_model.pb -o compressed_model.pb dp –pt compress -i frozen_model.pth -o compressed_model.pth
9.3.6. doc-train-input#
print the documentation (in rst format) of input training parameters.
dp doc-train-input [-h] [-v {DEBUG,3,INFO,2,WARNING,1,ERROR,0}] [-l LOG_PATH]
[--out-type {rst,json,json_schema}] [--multi-task]
9.3.6.1. Named Arguments#
- -v, --log-level
Possible choices: DEBUG, 3, INFO, 2, WARNING, 1, ERROR, 0
set verbosity level by string or number, 0=ERROR, 1=WARNING, 2=INFO and 3=DEBUG
Default: “INFO”
- -l, --log-path
set log file to log messages to disk, if not specified, the logs will only be output to console
- --out-type
Possible choices: rst, json, json_schema
The output type
Default: “rst”
- --multi-task
Print the documentation of multi-task training input parameters.
Default: False
9.3.7. model-devi#
calculate model deviation
dp model-devi [-h] [-v {DEBUG,3,INFO,2,WARNING,1,ERROR,0}] [-l LOG_PATH]
[-m MODELS [MODELS ...]] [-s SYSTEM] [-S SET_PREFIX] [-o OUTPUT]
[-f FREQUENCY] [--real_error] [--atomic] [--relative RELATIVE]
[--relative_v RELATIVE_V]
9.3.7.1. Named Arguments#
- -v, --log-level
Possible choices: DEBUG, 3, INFO, 2, WARNING, 1, ERROR, 0
set verbosity level by string or number, 0=ERROR, 1=WARNING, 2=INFO and 3=DEBUG
Default: “INFO”
- -l, --log-path
set log file to log messages to disk, if not specified, the logs will only be output to console
- -m, --models
Frozen models file (prefix) to import. TensorFlow backend: suffix is .pb; PyTorch backend: suffix is .pth.
Default: [‘graph.000’, ‘graph.001’, ‘graph.002’, ‘graph.003’]
- -s, --system
The system directory. Recursively detect systems in this directory.
Default: “.”
- -S, --set-prefix
[DEPRECATED] Deprecated argument.
- -o, --output
The output file for results of model deviation
Default: “model_devi.out”
- -f, --frequency
The trajectory frequency of the system
Default: 1
- --real_error
Calculate the RMS real error of the model. The real data should be given in the systems.
Default: False
- --atomic
Print the force model deviation of each atom.
Default: False
- --relative
Calculate the relative model deviation of force. The level parameter for computing the relative model deviation of the force should be given.
- --relative_v
Calculate the relative model deviation of virial. The level parameter for computing the relative model deviation of the virial should be given.
- examples:
dp model-devi -m graph.000.pb graph.001.pb graph.002.pb graph.003.pb -s ./data -o model_devi.out
9.3.8. convert-from#
(Supported backend: TensorFlow) convert lower model version to supported version
dp convert-from [-h] [-v {DEBUG,3,INFO,2,WARNING,1,ERROR,0}] [-l LOG_PATH]
[-i INPUT_MODEL] [-o OUTPUT_MODEL]
[{auto,0.12,1.0,1.1,1.2,1.3,2.0,pbtxt}]
9.3.8.1. Positional Arguments#
- FROM
Possible choices: auto, 0.12, 1.0, 1.1, 1.2, 1.3, 2.0, pbtxt
The original model compatibility
Default: “auto”
9.3.8.2. Named Arguments#
- -v, --log-level
Possible choices: DEBUG, 3, INFO, 2, WARNING, 1, ERROR, 0
set verbosity level by string or number, 0=ERROR, 1=WARNING, 2=INFO and 3=DEBUG
Default: “INFO”
- -l, --log-path
set log file to log messages to disk, if not specified, the logs will only be output to console
- -i, --input-model
the input model
Default: “frozen_model.pb”
- -o, --output-model
the output model If OUTPUT_MODEL ends with ‘.pbtxt’, the provided model will be converted to pbtxt format, without version conversion.
Default: “convert_out.pb”
- examples:
dp convert-from -i graph.pb -o graph_new.pb dp convert-from auto -i graph.pb -o graph_new.pb dp convert-from 1.0 -i graph.pb -o graph_new.pb
9.3.9. neighbor-stat#
Calculate neighbor statistics
dp neighbor-stat [-h] [-v {DEBUG,3,INFO,2,WARNING,1,ERROR,0}] [-l LOG_PATH]
[-s SYSTEM] -r RCUT [-t TYPE_MAP [TYPE_MAP ...]]
[--mixed-type]
9.3.9.1. Named Arguments#
- -v, --log-level
Possible choices: DEBUG, 3, INFO, 2, WARNING, 1, ERROR, 0
set verbosity level by string or number, 0=ERROR, 1=WARNING, 2=INFO and 3=DEBUG
Default: “INFO”
- -l, --log-path
set log file to log messages to disk, if not specified, the logs will only be output to console
- -s, --system
The system dir. Recursively detect systems in this directory
Default: “.”
- -r, --rcut
cutoff radius
- -t, --type-map
Type map. If not provided, the type map of data will be used.
- --mixed-type, --one-type
treat all types as a single type. Used with se_atten descriptor.
Default: False
- examples:
dp neighbor-stat -s data -r 6.0 -t O H
9.3.10. change-bias#
(Supported backend: PyTorch) Change model out bias according to the input data.
dp change-bias [-h] [-v {DEBUG,3,INFO,2,WARNING,1,ERROR,0}] [-l LOG_PATH]
[-s SYSTEM | -f DATAFILE | -b BIAS_VALUE [BIAS_VALUE ...]]
[-n NUMB_BATCH] [-m {change,set}] [-o OUTPUT]
[--model-branch MODEL_BRANCH]
INPUT
9.3.10.1. Positional Arguments#
- INPUT
The input checkpoint file or frozen model file
9.3.10.2. Named Arguments#
- -v, --log-level
Possible choices: DEBUG, 3, INFO, 2, WARNING, 1, ERROR, 0
set verbosity level by string or number, 0=ERROR, 1=WARNING, 2=INFO and 3=DEBUG
Default: “INFO”
- -l, --log-path
set log file to log messages to disk, if not specified, the logs will only be output to console
- -s, --system
The system dir. Recursively detect systems in this directory
Default: “.”
- -f, --datafile
The path to the datafile, each line of which is a path to one data system.
- -b, --bias-value
The user defined value for each type in the type_map of the model, split with spaces. For example, ‘-93.57 -187.1’ for energy bias of two elements. Only supports energy bias changing.
- -n, --numb-batch
The number of frames for bias changing in one data system. 0 means all data.
Default: 0
- -m, --mode
Possible choices: change, set
The mode for changing energy bias: change (default) : perform predictions using input model on target dataset, and do least square on the errors to obtain the target shift as bias. set : directly use the statistic bias in the target dataset.
Default: “change”
- -o, --output
The model after changing bias.
- --model-branch
Model branch chosen for changing bias if multi-task model.
- examples:
dp change-bias model.pt -s data -n 10 -m change
9.3.11. train-nvnmd#
(Supported backend: TensorFlow) train nvnmd model
dp train-nvnmd [-h] [-v {DEBUG,3,INFO,2,WARNING,1,ERROR,0}] [-l LOG_PATH]
[-i INIT_MODEL] [-r RESTART] [-s {s1,s2}]
[--skip-neighbor-stat]
INPUT
9.3.11.1. Positional Arguments#
- INPUT
the input parameter file in json format
9.3.11.2. Named Arguments#
- -v, --log-level
Possible choices: DEBUG, 3, INFO, 2, WARNING, 1, ERROR, 0
set verbosity level by string or number, 0=ERROR, 1=WARNING, 2=INFO and 3=DEBUG
Default: “INFO”
- -l, --log-path
set log file to log messages to disk, if not specified, the logs will only be output to console
- -i, --init-model
Initialize the model by the provided path prefix of checkpoint files.
- -r, --restart
Restart the training from the provided prefix of checkpoint files.
- -s, --step
Possible choices: s1, s2
steps to train model of NVNMD: s1 (train CNN), s2 (train QNN)
Default: “s1”
- --skip-neighbor-stat
Skip calculating neighbor statistics. Sel checking, automatic sel, and model compression will be disabled.
Default: False
- examples:
dp train-nvnmd input_cnn.json -s s1 dp train-nvnmd input_qnn.json -s s2 dp train-nvnmd input_cnn.json -s s1 –restart model.ckpt dp train-nvnmd input_cnn.json -s s2 –init-model model.ckpt
9.3.12. gui#
Serve DP-GUI.
dp gui [-h] [-v {DEBUG,3,INFO,2,WARNING,1,ERROR,0}] [-l LOG_PATH] [-p PORT]
[--bind_all]
9.3.12.1. Named Arguments#
- -v, --log-level
Possible choices: DEBUG, 3, INFO, 2, WARNING, 1, ERROR, 0
set verbosity level by string or number, 0=ERROR, 1=WARNING, 2=INFO and 3=DEBUG
Default: “INFO”
- -l, --log-path
set log file to log messages to disk, if not specified, the logs will only be output to console
- -p, --port
The port to serve DP-GUI on.
Default: 6042
- --bind_all
Serve on all public interfaces. This will expose your DP-GUI instance to the network on both IPv4 and IPv6 (where available).
Default: False
9.3.13. convert-backend#
Convert model to another backend.
dp convert-backend [-h] [-v {DEBUG,3,INFO,2,WARNING,1,ERROR,0}] [-l LOG_PATH]
INPUT OUTPUT
9.3.13.1. Positional Arguments#
- INPUT
The input model file.
- OUTPUT
The output model file.
9.3.13.2. Named Arguments#
- -v, --log-level
Possible choices: DEBUG, 3, INFO, 2, WARNING, 1, ERROR, 0
set verbosity level by string or number, 0=ERROR, 1=WARNING, 2=INFO and 3=DEBUG
Default: “INFO”
- -l, --log-path
set log file to log messages to disk, if not specified, the logs will only be output to console
- examples:
dp convert-backend model.pb model.pth dp convert-backend model.pb model.dp
9.3.14. show#
Show the information of a model
dp show [-h] [-v {DEBUG,3,INFO,2,WARNING,1,ERROR,0}] [-l LOG_PATH]
INPUT {model-branch,type-map,descriptor,fitting-net}
[{model-branch,type-map,descriptor,fitting-net} ...]
9.3.14.1. Positional Arguments#
- INPUT
The input checkpoint file or frozen model file
- ATTRIBUTES
Possible choices: model-branch, type-map, descriptor, fitting-net
9.3.14.2. Named Arguments#
- -v, --log-level
Possible choices: DEBUG, 3, INFO, 2, WARNING, 1, ERROR, 0
set verbosity level by string or number, 0=ERROR, 1=WARNING, 2=INFO and 3=DEBUG
Default: “INFO”
- -l, --log-path
set log file to log messages to disk, if not specified, the logs will only be output to console
- examples:
dp –pt show model.pt model-branch type-map descriptor fitting-net dp –pt show frozen_model.pth type-map descriptor fitting-net
- Use –tf or –pt to choose the backend:
dp –tf train input.json dp –pt train input.json