Skip to content

v0.7.0

Compare
Choose a tag to compare
@ziatdinovmax ziatdinovmax released this 17 Jun 23:06
· 196 commits to master since this release
eb09453

New functionalities

1) Deep kernel learning (DKL)-based Gaussian process (GP) regression.

The DKL-GP is based on this paper and can be used for predicting a functional property (or properties) from structural data such as images. Example of usage:

# Structural image data
n, d1, d2 = imgstack.shape
x_train = imgstack.reshape(n, d1*d2)
# Property
y_train = P[:, 0] # can be a scalar or vector variable

# Input data dims
data_dim = x_train.shape[-1]
# Initialize model
dklgp = aoi.models.dklGPR(data_dim)
# Train
dklgp.fit(
    x_train y_train, # inputs and outputs
    training_cycles=100, precision="single", lr=1e-2  # training parameters
)

# Make a prediction (with quantified uncertainty) with the trained model
mean, var = dklgp.predict(x_new)

For more details, see the example notebook

2) Pre-trained models

One can now load pre-trained models for atomic feature finding in graphene and BFO-like systems. Currently limited to STEM data. Example of usage:

# Load model for atom finding in graphene, which was trained on simulated data
model = aoi.models.load_pretrained_model("G_MD")
# Apply to your data
nn_out, coords = model.predict(new_data)

As with any machine learning model, there is a caveat that the performance of pre-trained models will likely degrade significantly on the out-of-distribution data (different feature size, presence of objects on the surface not accounted for in the simulations, etc.)

Bug fixes

  • The extractor of image patches now checks for NaNs in the cropped data.