learnergy.models.extra

Additional RBM-based models.

A package contaning additional RBM-based models (networks) for all common learnergy modules.

class learnergy.models.extra.SigmoidRBM(n_visible: Optional[int] = 128, n_hidden: Optional[int] = 128, steps: Optional[int] = 1, learning_rate: Optional[float] = 0.1, momentum: Optional[float] = 0.0, decay: Optional[float] = 0.0, temperature: Optional[float] = 1.0, use_gpu: Optional[bool] = False)

Bases: learnergy.models.bernoulli.RBM

A SigmoidRBM class provides the basic implementation for Sigmoid-Bernoulli Restricted Boltzmann Machines.

References

G. Hinton. A practical guide to training restricted Boltzmann machines. Neural networks: Tricks of the trade (2012).

__init__(self, n_visible: Optional[int] = 128, n_hidden: Optional[int] = 128, steps: Optional[int] = 1, learning_rate: Optional[float] = 0.1, momentum: Optional[float] = 0.0, decay: Optional[float] = 0.0, temperature: Optional[float] = 1.0, use_gpu: Optional[bool] = False)

Initialization method.

Parameters
  • n_visible – Amount of visible units.

  • n_hidden – Amount of hidden units.

  • steps – Number of Gibbs’ sampling steps.

  • learning_rate – Learning rate.

  • momentum – Momentum parameter.

  • decay – Weight decay used for penalization.

  • temperature – Temperature factor.

  • use_gpu – Whether GPU should be used or not.

visible_sampling(self, h: torch.Tensor, scale: Optional[bool] = False)

Performs the visible layer sampling, i.e., P(v|h).

Parameters
  • h – A tensor incoming from the hidden layer.

  • scale – A boolean to decide whether temperature should be used or not.

Returns

The states and probabilities of the visible layer sampling.

Return type

(Tuple[torch.Tensor, torch.Tensor])

class learnergy.models.extra.SigmoidRBM4deep(n_visible: Optional[int] = 128, n_hidden: Optional[int] = 128, steps: Optional[int] = 1, learning_rate: Optional[float] = 0.1, momentum: Optional[float] = 0.0, decay: Optional[float] = 0.0, temperature: Optional[float] = 1.0, use_gpu: Optional[bool] = False)

Bases: SigmoidRBM

A SigmoidRBM class provides the basic implementation for Sigmoid-Bernoulli Restricted Boltzmann Machines.

References

G. Hinton. A practical guide to training restricted Boltzmann machines. Neural networks: Tricks of the trade (2012).

__init__(self, n_visible: Optional[int] = 128, n_hidden: Optional[int] = 128, steps: Optional[int] = 1, learning_rate: Optional[float] = 0.1, momentum: Optional[float] = 0.0, decay: Optional[float] = 0.0, temperature: Optional[float] = 1.0, use_gpu: Optional[bool] = False)

Initialization method.

Parameters
  • n_visible – Amount of visible units.

  • n_hidden – Amount of hidden units.

  • steps – Number of Gibbs’ sampling steps.

  • learning_rate – Learning rate.

  • momentum – Momentum parameter.

  • decay – Weight decay used for penalization.

  • temperature – Temperature factor.

  • use_gpu – Whether GPU should be used or not.

fit(self, dataset: torch.utils.data.Dataset, batch_size: Optional[int] = 128, epochs: Optional[int] = 1)

Fits a new SigmoidRBM model.

Parameters
  • dataset – A Dataset object containing the training data.

  • batch_size – Amount of samples per batch.

  • epochs – Number of training epochs.

Returns

MSE (mean squared error) and log pseudo-likelihood from the training step.

Return type

(Tuple[float, float])