'Perform one step of gibbs sampling.
:param visible: activations of the visible units
:param n_features: number of features
:return: tuple(hidden probs, hidden states, visible probs,
new hidden probs, new hidden states)'

def gibbs_sampling_step(self, visible, n_features):

    (hprobs, hstates) = self.sample_hidden_from_visible(visible)
    vprobs = self.sample_visible_from_hidden(hprobs, n_features)
    (hprobs1, hstates1) = self.sample_hidden_from_visible(vprobs)
    return (hprobs, hstates, vprobs, hprobs1, hstates1)
