ramannoodle.pmodel.torch¶
Modules for polarizability models implemented with PyTorch.
- class ramannoodle.pmodel.torch.PotGNN(ref_structure, cutoff, size_node_embedding, size_edge_embedding, num_message_passes, gaussian_filter_start, gaussian_filter_end, mean_polarizability, stddev_polarizability)¶
Bases:
Module,PolarizabilityModelPOlarizability Tensor Graph Neural Network (PotGNN).
The architecture was inspired by the “direct force architecture” developed in Park et al.; npj Computational Materials (2021)7:73; doi:10.1038/s41524-021-00543-3. Implementation adapted from
torch_geometric.nn.models.GNNFFauthored by @ken2403 and merged by @rusty1s.The architecture of this model is still somewhat in flux. More complete documentation for this model, including a description of the architecture and discussion of design choices, will be available at a later date.
- Parameters:
ref_structure (
ReferenceStructure) – Reference structure from which nodes/edges are determined.cutoff (
float) – (Å) Cutoff distance for edges.size_node_embedding (
int)size_edge_embedding (
int)num_message_passes (
int)gaussian_filter_start (
float) – (Å) Lower bound of the Gaussian filter used in initial edge embedding.gaussian_filter_end (
float) – (Å) Upper bound of the Gaussian filter used in initial edge embedding.mean_polarizability (
ndarray[Any,dtype[float64]]) – Array with shape (3,3).stddev_polarizability (
ndarray[Any,dtype[float64]]) – Array with shape (3,3).
- calc_polarizabilities(positions_batch)¶
Return estimated polarizabilities for a batch of fractional positions.
- forward(lattice, atomic_numbers, positions)¶
Forward pass.
- Parameters:
- Return type:
- Returns:
Polarizability vectors with size [S,6]. To convert into tensor form, see
polarizability_vectors_to_tensors().
- ramannoodle.pmodel.torch.train_single_epoch(model, training_set, validation_set, batch_size, optimizer, loss_function)¶
Train PotGNN model for a single epoch on the default device.
- Parameters:
model (
PotGNN)training_set (
PolarizabilityDataset)validation_set (
PolarizabilityDataset)batch_size (
int)optimizer (
Optimizer)loss_function (
_Loss)
- Return type:
- Returns:
mean training loss
mean validation loss
mean variance of predictions on validation set – Array with shape [6,]