Firstly, we define the autoencoder topology by specifying the number of inputs, hidden layers, and outputs for the encoder and (reversed) for the decoder. Secondly, we define the hyper-parameters for the parallel tempering MCMC sampler, such as number of replicas (\(M\) ), the geometric temperature ladder maximum temperature (\(T_\text{max}\) ), replica swap interval (\(R_\text{swap}\) ) that determines how often to propose an exchange between neighbouring replicas, and the maximum number of draws for each replica (\(R_\text{max}\) ). In parallel processing, it is difficult to determine when to stop sampling and hence this is done by checking number of alive process. Therefore, we need to set the number of replicas in ensemble as \(alive\) ; \(alive = M\) . These are the key steps in initialisation as shown in Stage 0 of Algorithm REF . The algorithm uses parallel tempering MCMC in its first phase, then switches to canonical MCMC in its second phase, which is defined by number of samples need to switch \(R_\text{switch}\) . During the switch, all the temperature values in the ladder is changed to 1 as done by [1]}, [2]}. The \(g_{\text{prob}}\)  determines how often to apply Langevin-gradients for creating the proposals.
