RBM¶
-
class
qucumber.rbm.BinaryRBM(num_visible, num_hidden, zero_weights=False, gpu=True)[source]¶ Bases:
torch.nn.Module-
effective_energy(v)[source]¶ The effective energies of the given visible states.
- Parameters
v (torch.Tensor) – The visible states.
- Returns
The effective energies of the given visible states.
- Return type
-
effective_energy_gradient(v, reduce=True)[source]¶ The gradients of the effective energies for the given visible states.
- Parameters
v (torch.Tensor) – The visible states.
reduce – If True, will sum over the gradients resulting from each visible state. Otherwise will return a batch of gradient vectors.
- Returns
Will return a vector (or matrix if reduce=False and multiple visible states were given as a matrix) containing the gradients for all parameters (computed on the given visible states v).
- Return type
-
gibbs_steps(k, initial_state, overwrite=False)[source]¶ Performs k steps of Block Gibbs sampling. One step consists of sampling the hidden state
from the conditional distribution
, and sampling the visible state
from the conditional distribution
.
- Parameters
k (int) – Number of Block Gibbs steps.
initial_state (torch.Tensor) – The initial state of the Markov Chains.
overwrite (bool) – Whether to overwrite the initial_state tensor, if it is provided.
-
partition(space)[source]¶ Compute the partition function of the RBM.
- Parameters
space (torch.Tensor) – A rank 2 tensor of the visible space.
- Returns
The value of the partition function evaluated at the current state of the RBM.
- Return type
-
prob_h_given_v(v, out=None)[source]¶ Given a visible unit configuration, compute the probability vector of the hidden units being on.
- Parameters
h (torch.Tensor) – The hidden unit.
out (torch.Tensor) – The output tensor to write to.
- Returns
The probability of hidden units being active given the visible state.
- Return type
-
prob_v_given_h(h, out=None)[source]¶ Given a hidden unit configuration, compute the probability vector of the visible units being on.
- Parameters
h (torch.Tensor) – The hidden unit
out (torch.Tensor) – The output tensor to write to.
- Returns
The probability of visible units being active given the hidden state.
- Return type
-
sample_h_given_v(v, out=None)[source]¶ Sample/generate a hidden state given a visible state.
- Parameters
h (torch.Tensor) – The visible state.
out (torch.Tensor) – The output tensor to write to.
- Returns
The sampled hidden state.
- Return type
-
sample_v_given_h(h, out=None)[source]¶ Sample/generate a visible state given a hidden state.
- Parameters
h (torch.Tensor) – The hidden state.
out (torch.Tensor) – The output tensor to write to.
- Returns
The sampled visible state.
- Return type
-