Training

You can train MOFTransformers by the following methods.

After downloading the pre-trained model, it is possible to train a model with higher accuracy.

$ moftransformer download pretrain_model

1. Using run function

You can train the model using the function run in moftransformer python library.

moftransformer.run (root_dataset, downstream, log_dir=’logs/’, test_only=False, **kwargs)

  • root_dataset : A folder containing graph data, grid data, and json of MOFs that you want to train or test. (see generate custom dataset)

  • downstream: Name of user-specific task (e.g. bandgap, gasuptake, etc).

  • log_dir: Directory to save log, models, and params. (default:logs/)

  • test_only: If True, only the test process is performed without the learning model. (default:False)

  • kwargs : configuration for MOFTransformer

** After version 2.1.1, the best model is saved separately as best.ckpt.

Example for training PMTransformer (MOFTransformer):

import moftransformer
from moftransformer.examples import example_path

# data root and downstream from example
root_dataset = example_path['root_dataset']
downstream = example_path['downstream']
log_dir = './logs/'
# load_path = "pmtransformer" (default)

# kwargs (optional)
max_epochs = 10
batch_size = 8
mean = 0
std = 1


moftransformer.run(root_dataset, downstream, log_dir=log_dir,                   
                   max_epochs=max_epochs, batch_size=batch_size,
                   mean=mean, std=std)

Example for multi-task learning:

import moftransformer
from moftransformer.examples import example_path

# data root and downstream from example
root_dataset = example_path['root_dataset']
downstream = example_path['downstream']
log_dir = './logs/'
# load_path = "pmtransformer" (default)

# kwargs (optional)
max_epochs = 10
batch_size = 8
mean = [0, 1, 2]
std = [1, 2, 3]
n_targets = 3

moftransformer.run(root_dataset, downstream, log_dir=log_dir,                   
                   max_epochs=max_epochs, batch_size=batch_size,
                   mean=mean, std=std, n_targets=n_targets)

After training, the trained model, logs and hyperparameters will be saved at log_dir.
Then you look over the results with tensorboard

$ tensorboard --logdir=[log_dir] --bind_all

2. Using command-line

You can proceed with training in the command-line using parameters the same as Python’s run.

$ moftransformer run --root_dataset [root_dataset] --downstream [downstream] --logdir [logdir] ...

For example:

$ moftransformer run --root_dataset './data' --downstream 'example' --max_epochs 10 --devices 2 --batch_size 216

For more information, see the help, command by “moftransformer run -h”.