ecnet

Top-level package exports. Prefer from ecnet import ECNet.

ecnet.__version__

str(object=’’) -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.__str__() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to ‘strict’.

class ecnet.model.ECNet(input_dim, output_dim, hidden_dim, n_hidden, dropout=0.0, device='cpu')[source]

Bases: Module

Imported in user code as ecnet.ECNet.

Parameters:
__init__(input_dim, output_dim, hidden_dim, n_hidden, dropout=0.0, device='cpu')[source]

ECNet, child of torch.nn.Module: handles data preprocessing, multilayer perceptron training, stores multilayer perceptron layers/weights for continued usage/saving

Args:

input_dim (int): dimensionality of input data output_dim (int): dimensionalit of output data hidden_dim (int): number of neurons in hidden layer(s) n_hidden (int): number of hidden layers between input and output dropout (float, optional): neuron dropout probability, default 0.0 device (str, optional): device to run tensor ops on, default cpu

Parameters:
fit(smiles=None, target_vals=None, dataset=None, backend='padel', batch_size=32, epochs=100, lr_decay=0.0, valid_size=0.0, valid_eval_iter=1, patience=16, verbose=0, random_state=None, shuffle=False, **kwargs)[source]

Fit ECNet to SMILES/target values or a pre-loaded QSPRDataset.

Training uses Adam, MSE loss, and ReLU activations between layers. Optional linear learning-rate decay and validation-based early stopping are supported when valid_size > 0.

Parameters:
  • smiles (List[str]) – SMILES strings used to build descriptors when dataset is omitted.

  • target_vals (List[List[float]]) – Regression targets when dataset is omitted.

  • dataset (QSPRDataset) – Pre-loaded dataset with descriptors and targets.

  • backend (str) – Descriptor backend when building from SMILES (padel or alvadesc). Default padel.

  • batch_size (int) – Training batch size. Default 32.

  • epochs (int) – Number of training epochs. Default 100.

  • lr_decay (float) – Linear learning-rate decay per epoch. Default 0.0.

  • valid_size (float) – Fraction of data held out for validation. Default 0.0.

  • valid_eval_iter (int) – Validate every this many epochs. Default 1.

  • patience (int) – Early-stopping patience in epochs. Default 16.

  • verbose (int) – Print progress every this many epochs when > 0. Default 0.

  • random_state (int) – Seed for train/validation split. Default None.

  • shuffle (bool) – Shuffle data between epochs. Default False.

  • **kwargs – Forwarded to torch.optim.Adam.

Returns:

Training losses and validation losses (zeros when valid_size == 0).

Return type:

Tuple[List[float], List[float]]

forward(x)[source]

Forward propagation of data through multilayer perceptron

Return type:

tensor

Parameters:

x (tensor)

Args:

x (torch.tensor): input data to feed forward

Returns:

torch.tensor: output of final model layer

loss(pred, target)[source]

Compute mean squared error between predicted and target values.

Parameters:
  • pred (tensor) – Predicted values, shape (n_samples, n_features).

  • target (tensor) – Target values, shape (n_samples, n_features).

Returns:

MSE loss.

Return type:

tensor

save(model_filename)[source]

Saves the model for later use

Args:

model_filename (str): filename/path to save model

Parameters:

model_filename (str)